summaryrefslogtreecommitdiffstats
path: root/docs/sqlglot/expressions.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/sqlglot/expressions.html')
-rw-r--r--docs/sqlglot/expressions.html17221
1 files changed, 9066 insertions, 8155 deletions
diff --git a/docs/sqlglot/expressions.html b/docs/sqlglot/expressions.html
index 6463633..a4b82fc 100644
--- a/docs/sqlglot/expressions.html
+++ b/docs/sqlglot/expressions.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
- <meta name="generator" content="pdoc 13.1.0"/>
+ <meta name="generator" content="pdoc 13.1.1"/>
<title>sqlglot.expressions API documentation</title>
<style>/*! * Bootstrap Reboot v5.0.0 (https://getbootstrap.com/) * Copyright 2011-2021 The Bootstrap Authors * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}</style>
@@ -444,6 +444,12 @@
</li>
<li>
+ <a class="class" href="#OnUpdateColumnConstraint">OnUpdateColumnConstraint</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#PrimaryKeyColumnConstraint">PrimaryKeyColumnConstraint</a>
<ul class="memberlist">
</ul>
@@ -588,6 +594,12 @@
</li>
<li>
+ <a class="class" href="#OnConflict">OnConflict</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#Returning">Returning</a>
<ul class="memberlist">
</ul>
@@ -831,6 +843,12 @@
</li>
<li>
+ <a class="class" href="#InputOutputFormat">InputOutputFormat</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#IsolatedLoadingProperty">IsolatedLoadingProperty</a>
<ul class="memberlist">
</ul>
@@ -909,6 +927,12 @@
</li>
<li>
+ <a class="class" href="#RowFormatProperty">RowFormatProperty</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#RowFormatDelimitedProperty">RowFormatDelimitedProperty</a>
<ul class="memberlist">
</ul>
@@ -951,6 +975,12 @@
</li>
<li>
+ <a class="class" href="#StabilityProperty">StabilityProperty</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#TableFormatProperty">TableFormatProperty</a>
<ul class="memberlist">
</ul>
@@ -969,7 +999,7 @@
</li>
<li>
- <a class="class" href="#VolatilityProperty">VolatilityProperty</a>
+ <a class="class" href="#VolatileProperty">VolatileProperty</a>
<ul class="memberlist">
</ul>
@@ -1362,6 +1392,9 @@
<a class="variable" href="#DataType.Type.DECIMAL">DECIMAL</a>
</li>
<li>
+ <a class="variable" href="#DataType.Type.BIGDECIMAL">BIGDECIMAL</a>
+ </li>
+ <li>
<a class="variable" href="#DataType.Type.BIT">BIT</a>
</li>
<li>
@@ -2130,6 +2163,12 @@
</li>
<li>
+ <a class="class" href="#CurrentUser">CurrentUser</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#DateAdd">DateAdd</a>
<ul class="memberlist">
</ul>
@@ -2496,6 +2535,12 @@
</li>
<li>
+ <a class="class" href="#StarMap">StarMap</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#VarMap">VarMap</a>
<ul class="memberlist">
</ul>
@@ -2514,6 +2559,12 @@
</li>
<li>
+ <a class="class" href="#MD5">MD5</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#Min">Min</a>
<ul class="memberlist">
</ul>
@@ -2652,6 +2703,18 @@
</li>
<li>
+ <a class="class" href="#SHA">SHA</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
+ <a class="class" href="#SHA2">SHA2</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#SortArray">SortArray</a>
<ul class="memberlist">
</ul>
@@ -3844,4316 +3907,4411 @@ SQL expressions, such as <code><a href="#select">sqlglot.expressions.select</a><
</span><span id="L-818"><a href="#L-818"><span class="linenos"> 818</span></a> <span class="s2">&quot;properties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-819"><a href="#L-819"><span class="linenos"> 819</span></a> <span class="s2">&quot;replace&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-820"><a href="#L-820"><span class="linenos"> 820</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-821"><a href="#L-821"><span class="linenos"> 821</span></a> <span class="s2">&quot;volatile&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-822"><a href="#L-822"><span class="linenos"> 822</span></a> <span class="s2">&quot;indexes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-823"><a href="#L-823"><span class="linenos"> 823</span></a> <span class="s2">&quot;no_schema_binding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-824"><a href="#L-824"><span class="linenos"> 824</span></a> <span class="s2">&quot;begin&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-825"><a href="#L-825"><span class="linenos"> 825</span></a> <span class="p">}</span>
+</span><span id="L-821"><a href="#L-821"><span class="linenos"> 821</span></a> <span class="s2">&quot;indexes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-822"><a href="#L-822"><span class="linenos"> 822</span></a> <span class="s2">&quot;no_schema_binding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-823"><a href="#L-823"><span class="linenos"> 823</span></a> <span class="s2">&quot;begin&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-824"><a href="#L-824"><span class="linenos"> 824</span></a> <span class="p">}</span>
+</span><span id="L-825"><a href="#L-825"><span class="linenos"> 825</span></a>
</span><span id="L-826"><a href="#L-826"><span class="linenos"> 826</span></a>
-</span><span id="L-827"><a href="#L-827"><span class="linenos"> 827</span></a>
-</span><span id="L-828"><a href="#L-828"><span class="linenos"> 828</span></a><span class="k">class</span> <span class="nc">Describe</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-829"><a href="#L-829"><span class="linenos"> 829</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-827"><a href="#L-827"><span class="linenos"> 827</span></a><span class="k">class</span> <span class="nc">Describe</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-828"><a href="#L-828"><span class="linenos"> 828</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-829"><a href="#L-829"><span class="linenos"> 829</span></a>
</span><span id="L-830"><a href="#L-830"><span class="linenos"> 830</span></a>
-</span><span id="L-831"><a href="#L-831"><span class="linenos"> 831</span></a>
-</span><span id="L-832"><a href="#L-832"><span class="linenos"> 832</span></a><span class="k">class</span> <span class="nc">Pragma</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-833"><a href="#L-833"><span class="linenos"> 833</span></a> <span class="k">pass</span>
+</span><span id="L-831"><a href="#L-831"><span class="linenos"> 831</span></a><span class="k">class</span> <span class="nc">Pragma</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-832"><a href="#L-832"><span class="linenos"> 832</span></a> <span class="k">pass</span>
+</span><span id="L-833"><a href="#L-833"><span class="linenos"> 833</span></a>
</span><span id="L-834"><a href="#L-834"><span class="linenos"> 834</span></a>
-</span><span id="L-835"><a href="#L-835"><span class="linenos"> 835</span></a>
-</span><span id="L-836"><a href="#L-836"><span class="linenos"> 836</span></a><span class="k">class</span> <span class="nc">Set</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-837"><a href="#L-837"><span class="linenos"> 837</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-835"><a href="#L-835"><span class="linenos"> 835</span></a><span class="k">class</span> <span class="nc">Set</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-836"><a href="#L-836"><span class="linenos"> 836</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-837"><a href="#L-837"><span class="linenos"> 837</span></a>
</span><span id="L-838"><a href="#L-838"><span class="linenos"> 838</span></a>
-</span><span id="L-839"><a href="#L-839"><span class="linenos"> 839</span></a>
-</span><span id="L-840"><a href="#L-840"><span class="linenos"> 840</span></a><span class="k">class</span> <span class="nc">SetItem</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-841"><a href="#L-841"><span class="linenos"> 841</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-842"><a href="#L-842"><span class="linenos"> 842</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-843"><a href="#L-843"><span class="linenos"> 843</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-844"><a href="#L-844"><span class="linenos"> 844</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-845"><a href="#L-845"><span class="linenos"> 845</span></a> <span class="s2">&quot;collate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># MySQL SET NAMES statement</span>
-</span><span id="L-846"><a href="#L-846"><span class="linenos"> 846</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-847"><a href="#L-847"><span class="linenos"> 847</span></a> <span class="p">}</span>
+</span><span id="L-839"><a href="#L-839"><span class="linenos"> 839</span></a><span class="k">class</span> <span class="nc">SetItem</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-840"><a href="#L-840"><span class="linenos"> 840</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-841"><a href="#L-841"><span class="linenos"> 841</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-842"><a href="#L-842"><span class="linenos"> 842</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-843"><a href="#L-843"><span class="linenos"> 843</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-844"><a href="#L-844"><span class="linenos"> 844</span></a> <span class="s2">&quot;collate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># MySQL SET NAMES statement</span>
+</span><span id="L-845"><a href="#L-845"><span class="linenos"> 845</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-846"><a href="#L-846"><span class="linenos"> 846</span></a> <span class="p">}</span>
+</span><span id="L-847"><a href="#L-847"><span class="linenos"> 847</span></a>
</span><span id="L-848"><a href="#L-848"><span class="linenos"> 848</span></a>
-</span><span id="L-849"><a href="#L-849"><span class="linenos"> 849</span></a>
-</span><span id="L-850"><a href="#L-850"><span class="linenos"> 850</span></a><span class="k">class</span> <span class="nc">Show</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-851"><a href="#L-851"><span class="linenos"> 851</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-852"><a href="#L-852"><span class="linenos"> 852</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-853"><a href="#L-853"><span class="linenos"> 853</span></a> <span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-854"><a href="#L-854"><span class="linenos"> 854</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-855"><a href="#L-855"><span class="linenos"> 855</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-856"><a href="#L-856"><span class="linenos"> 856</span></a> <span class="s2">&quot;like&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-857"><a href="#L-857"><span class="linenos"> 857</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-858"><a href="#L-858"><span class="linenos"> 858</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-859"><a href="#L-859"><span class="linenos"> 859</span></a> <span class="s2">&quot;full&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-860"><a href="#L-860"><span class="linenos"> 860</span></a> <span class="s2">&quot;mutex&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-861"><a href="#L-861"><span class="linenos"> 861</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-862"><a href="#L-862"><span class="linenos"> 862</span></a> <span class="s2">&quot;channel&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-863"><a href="#L-863"><span class="linenos"> 863</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-864"><a href="#L-864"><span class="linenos"> 864</span></a> <span class="s2">&quot;log&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-865"><a href="#L-865"><span class="linenos"> 865</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-866"><a href="#L-866"><span class="linenos"> 866</span></a> <span class="s2">&quot;types&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</span></a> <span class="p">}</span>
+</span><span id="L-849"><a href="#L-849"><span class="linenos"> 849</span></a><span class="k">class</span> <span class="nc">Show</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-850"><a href="#L-850"><span class="linenos"> 850</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-851"><a href="#L-851"><span class="linenos"> 851</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-852"><a href="#L-852"><span class="linenos"> 852</span></a> <span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-853"><a href="#L-853"><span class="linenos"> 853</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-854"><a href="#L-854"><span class="linenos"> 854</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-855"><a href="#L-855"><span class="linenos"> 855</span></a> <span class="s2">&quot;like&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-856"><a href="#L-856"><span class="linenos"> 856</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-857"><a href="#L-857"><span class="linenos"> 857</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-858"><a href="#L-858"><span class="linenos"> 858</span></a> <span class="s2">&quot;full&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-859"><a href="#L-859"><span class="linenos"> 859</span></a> <span class="s2">&quot;mutex&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-860"><a href="#L-860"><span class="linenos"> 860</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-861"><a href="#L-861"><span class="linenos"> 861</span></a> <span class="s2">&quot;channel&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-862"><a href="#L-862"><span class="linenos"> 862</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-863"><a href="#L-863"><span class="linenos"> 863</span></a> <span class="s2">&quot;log&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-864"><a href="#L-864"><span class="linenos"> 864</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-865"><a href="#L-865"><span class="linenos"> 865</span></a> <span class="s2">&quot;types&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-866"><a href="#L-866"><span class="linenos"> 866</span></a> <span class="p">}</span>
+</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</span></a>
</span><span id="L-868"><a href="#L-868"><span class="linenos"> 868</span></a>
-</span><span id="L-869"><a href="#L-869"><span class="linenos"> 869</span></a>
-</span><span id="L-870"><a href="#L-870"><span class="linenos"> 870</span></a><span class="k">class</span> <span class="nc">UserDefinedFunction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;wrapped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-869"><a href="#L-869"><span class="linenos"> 869</span></a><span class="k">class</span> <span class="nc">UserDefinedFunction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-870"><a href="#L-870"><span class="linenos"> 870</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;wrapped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a>
</span><span id="L-872"><a href="#L-872"><span class="linenos"> 872</span></a>
-</span><span id="L-873"><a href="#L-873"><span class="linenos"> 873</span></a>
-</span><span id="L-874"><a href="#L-874"><span class="linenos"> 874</span></a><span class="k">class</span> <span class="nc">CharacterSet</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-875"><a href="#L-875"><span class="linenos"> 875</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-873"><a href="#L-873"><span class="linenos"> 873</span></a><span class="k">class</span> <span class="nc">CharacterSet</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-874"><a href="#L-874"><span class="linenos"> 874</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-875"><a href="#L-875"><span class="linenos"> 875</span></a>
</span><span id="L-876"><a href="#L-876"><span class="linenos"> 876</span></a>
-</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a>
-</span><span id="L-878"><a href="#L-878"><span class="linenos"> 878</span></a><span class="k">class</span> <span class="nc">With</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</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;recursive&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-880"><a href="#L-880"><span class="linenos"> 880</span></a>
-</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a> <span class="nd">@property</span>
-</span><span id="L-882"><a href="#L-882"><span class="linenos"> 882</span></a> <span class="k">def</span> <span class="nf">recursive</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-883"><a href="#L-883"><span class="linenos"> 883</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;recursive&quot;</span><span class="p">))</span>
+</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a><span class="k">class</span> <span class="nc">With</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-878"><a href="#L-878"><span class="linenos"> 878</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;recursive&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</span></a>
+</span><span id="L-880"><a href="#L-880"><span class="linenos"> 880</span></a> <span class="nd">@property</span>
+</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a> <span class="k">def</span> <span class="nf">recursive</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-882"><a href="#L-882"><span class="linenos"> 882</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;recursive&quot;</span><span class="p">))</span>
+</span><span id="L-883"><a href="#L-883"><span class="linenos"> 883</span></a>
</span><span id="L-884"><a href="#L-884"><span class="linenos"> 884</span></a>
-</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a>
-</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a><span class="k">class</span> <span class="nc">WithinGroup</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-887"><a href="#L-887"><span class="linenos"> 887</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-885"><a href="#L-885"><span class="linenos"> 885</span></a><span class="k">class</span> <span class="nc">WithinGroup</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-887"><a href="#L-887"><span class="linenos"> 887</span></a>
</span><span id="L-888"><a href="#L-888"><span class="linenos"> 888</span></a>
-</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a>
-</span><span id="L-890"><a href="#L-890"><span class="linenos"> 890</span></a><span class="k">class</span> <span class="nc">CTE</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">):</span>
-</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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">True</span><span class="p">}</span>
+</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a><span class="k">class</span> <span class="nc">CTE</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">):</span>
+</span><span id="L-890"><a href="#L-890"><span class="linenos"> 890</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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">True</span><span class="p">}</span>
+</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a>
</span><span id="L-892"><a href="#L-892"><span class="linenos"> 892</span></a>
-</span><span id="L-893"><a href="#L-893"><span class="linenos"> 893</span></a>
-</span><span id="L-894"><a href="#L-894"><span class="linenos"> 894</span></a><span class="k">class</span> <span class="nc">TableAlias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-895"><a href="#L-895"><span class="linenos"> 895</span></a> <span class="n">arg_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;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-896"><a href="#L-896"><span class="linenos"> 896</span></a>
-</span><span id="L-897"><a href="#L-897"><span class="linenos"> 897</span></a> <span class="nd">@property</span>
-</span><span id="L-898"><a href="#L-898"><span class="linenos"> 898</span></a> <span class="k">def</span> <span class="nf">columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-899"><a href="#L-899"><span class="linenos"> 899</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;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
+</span><span id="L-893"><a href="#L-893"><span class="linenos"> 893</span></a><span class="k">class</span> <span class="nc">TableAlias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-894"><a href="#L-894"><span class="linenos"> 894</span></a> <span class="n">arg_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;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-895"><a href="#L-895"><span class="linenos"> 895</span></a>
+</span><span id="L-896"><a href="#L-896"><span class="linenos"> 896</span></a> <span class="nd">@property</span>
+</span><span id="L-897"><a href="#L-897"><span class="linenos"> 897</span></a> <span class="k">def</span> <span class="nf">columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-898"><a href="#L-898"><span class="linenos"> 898</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;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
+</span><span id="L-899"><a href="#L-899"><span class="linenos"> 899</span></a>
</span><span id="L-900"><a href="#L-900"><span class="linenos"> 900</span></a>
-</span><span id="L-901"><a href="#L-901"><span class="linenos"> 901</span></a>
-</span><span id="L-902"><a href="#L-902"><span class="linenos"> 902</span></a><span class="k">class</span> <span class="nc">BitString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-903"><a href="#L-903"><span class="linenos"> 903</span></a> <span class="k">pass</span>
+</span><span id="L-901"><a href="#L-901"><span class="linenos"> 901</span></a><span class="k">class</span> <span class="nc">BitString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-902"><a href="#L-902"><span class="linenos"> 902</span></a> <span class="k">pass</span>
+</span><span id="L-903"><a href="#L-903"><span class="linenos"> 903</span></a>
</span><span id="L-904"><a href="#L-904"><span class="linenos"> 904</span></a>
-</span><span id="L-905"><a href="#L-905"><span class="linenos"> 905</span></a>
-</span><span id="L-906"><a href="#L-906"><span class="linenos"> 906</span></a><span class="k">class</span> <span class="nc">HexString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-907"><a href="#L-907"><span class="linenos"> 907</span></a> <span class="k">pass</span>
+</span><span id="L-905"><a href="#L-905"><span class="linenos"> 905</span></a><span class="k">class</span> <span class="nc">HexString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-906"><a href="#L-906"><span class="linenos"> 906</span></a> <span class="k">pass</span>
+</span><span id="L-907"><a href="#L-907"><span class="linenos"> 907</span></a>
</span><span id="L-908"><a href="#L-908"><span class="linenos"> 908</span></a>
-</span><span id="L-909"><a href="#L-909"><span class="linenos"> 909</span></a>
-</span><span id="L-910"><a href="#L-910"><span class="linenos"> 910</span></a><span class="k">class</span> <span class="nc">ByteString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-911"><a href="#L-911"><span class="linenos"> 911</span></a> <span class="k">pass</span>
+</span><span id="L-909"><a href="#L-909"><span class="linenos"> 909</span></a><span class="k">class</span> <span class="nc">ByteString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-910"><a href="#L-910"><span class="linenos"> 910</span></a> <span class="k">pass</span>
+</span><span id="L-911"><a href="#L-911"><span class="linenos"> 911</span></a>
</span><span id="L-912"><a href="#L-912"><span class="linenos"> 912</span></a>
-</span><span id="L-913"><a href="#L-913"><span class="linenos"> 913</span></a>
-</span><span id="L-914"><a href="#L-914"><span class="linenos"> 914</span></a><span class="k">class</span> <span class="nc">Column</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-915"><a href="#L-915"><span class="linenos"> 915</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</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 class="s2">&quot;db&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;join_mark&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-916"><a href="#L-916"><span class="linenos"> 916</span></a>
-</span><span id="L-917"><a href="#L-917"><span class="linenos"> 917</span></a> <span class="nd">@property</span>
-</span><span id="L-918"><a href="#L-918"><span class="linenos"> 918</span></a> <span class="k">def</span> <span class="nf">table</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-919"><a href="#L-919"><span class="linenos"> 919</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;table&quot;</span><span class="p">)</span>
-</span><span id="L-920"><a href="#L-920"><span class="linenos"> 920</span></a>
-</span><span id="L-921"><a href="#L-921"><span class="linenos"> 921</span></a> <span class="nd">@property</span>
-</span><span id="L-922"><a href="#L-922"><span class="linenos"> 922</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-923"><a href="#L-923"><span class="linenos"> 923</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-924"><a href="#L-924"><span class="linenos"> 924</span></a>
-</span><span id="L-925"><a href="#L-925"><span class="linenos"> 925</span></a> <span class="nd">@property</span>
-</span><span id="L-926"><a href="#L-926"><span class="linenos"> 926</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-927"><a href="#L-927"><span class="linenos"> 927</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-928"><a href="#L-928"><span class="linenos"> 928</span></a>
-</span><span id="L-929"><a href="#L-929"><span class="linenos"> 929</span></a> <span class="nd">@property</span>
-</span><span id="L-930"><a href="#L-930"><span class="linenos"> 930</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-931"><a href="#L-931"><span class="linenos"> 931</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-932"><a href="#L-932"><span class="linenos"> 932</span></a>
-</span><span id="L-933"><a href="#L-933"><span class="linenos"> 933</span></a> <span class="nd">@property</span>
-</span><span id="L-934"><a href="#L-934"><span class="linenos"> 934</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">Identifier</span><span class="p">]:</span>
-</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a column in order catalog, db, table, name.&quot;&quot;&quot;</span>
-</span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">part</span> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="nb">reversed</span><span class="p">(</span><span class="nb">list</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">values</span><span class="p">()))</span> <span class="k">if</span> <span class="n">part</span><span class="p">]</span>
-</span><span id="L-937"><a href="#L-937"><span class="linenos"> 937</span></a>
-</span><span id="L-938"><a href="#L-938"><span class="linenos"> 938</span></a> <span class="k">def</span> <span class="nf">to_dot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
-</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Converts the column into a dot expression.&quot;&quot;&quot;</span>
-</span><span id="L-940"><a href="#L-940"><span class="linenos"> 940</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-941"><a href="#L-941"><span class="linenos"> 941</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a>
-</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
-</span><span id="L-944"><a href="#L-944"><span class="linenos"> 944</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
-</span><span id="L-945"><a href="#L-945"><span class="linenos"> 945</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parent</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a>
-</span><span id="L-948"><a href="#L-948"><span class="linenos"> 948</span></a> <span class="k">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
+</span><span id="L-913"><a href="#L-913"><span class="linenos"> 913</span></a><span class="k">class</span> <span class="nc">Column</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-914"><a href="#L-914"><span class="linenos"> 914</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</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 class="s2">&quot;db&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;join_mark&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-915"><a href="#L-915"><span class="linenos"> 915</span></a>
+</span><span id="L-916"><a href="#L-916"><span class="linenos"> 916</span></a> <span class="nd">@property</span>
+</span><span id="L-917"><a href="#L-917"><span class="linenos"> 917</span></a> <span class="k">def</span> <span class="nf">table</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-918"><a href="#L-918"><span class="linenos"> 918</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;table&quot;</span><span class="p">)</span>
+</span><span id="L-919"><a href="#L-919"><span class="linenos"> 919</span></a>
+</span><span id="L-920"><a href="#L-920"><span class="linenos"> 920</span></a> <span class="nd">@property</span>
+</span><span id="L-921"><a href="#L-921"><span class="linenos"> 921</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-922"><a href="#L-922"><span class="linenos"> 922</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-923"><a href="#L-923"><span class="linenos"> 923</span></a>
+</span><span id="L-924"><a href="#L-924"><span class="linenos"> 924</span></a> <span class="nd">@property</span>
+</span><span id="L-925"><a href="#L-925"><span class="linenos"> 925</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-926"><a href="#L-926"><span class="linenos"> 926</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-927"><a href="#L-927"><span class="linenos"> 927</span></a>
+</span><span id="L-928"><a href="#L-928"><span class="linenos"> 928</span></a> <span class="nd">@property</span>
+</span><span id="L-929"><a href="#L-929"><span class="linenos"> 929</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-930"><a href="#L-930"><span class="linenos"> 930</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-931"><a href="#L-931"><span class="linenos"> 931</span></a>
+</span><span id="L-932"><a href="#L-932"><span class="linenos"> 932</span></a> <span class="nd">@property</span>
+</span><span id="L-933"><a href="#L-933"><span class="linenos"> 933</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">Identifier</span><span class="p">]:</span>
+</span><span id="L-934"><a href="#L-934"><span class="linenos"> 934</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a column in order catalog, db, table, name.&quot;&quot;&quot;</span>
+</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">part</span> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="nb">reversed</span><span class="p">(</span><span class="nb">list</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">values</span><span class="p">()))</span> <span class="k">if</span> <span class="n">part</span><span class="p">]</span>
+</span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</span></a>
+</span><span id="L-937"><a href="#L-937"><span class="linenos"> 937</span></a> <span class="k">def</span> <span class="nf">to_dot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="L-938"><a href="#L-938"><span class="linenos"> 938</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Converts the column into a dot expression.&quot;&quot;&quot;</span>
+</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</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-940"><a href="#L-940"><span class="linenos"> 940</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="L-941"><a href="#L-941"><span class="linenos"> 941</span></a>
+</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
+</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
+</span><span id="L-944"><a href="#L-944"><span class="linenos"> 944</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parent</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="L-945"><a href="#L-945"><span class="linenos"> 945</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a>
+</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a> <span class="k">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
+</span><span id="L-948"><a href="#L-948"><span class="linenos"> 948</span></a>
</span><span id="L-949"><a href="#L-949"><span class="linenos"> 949</span></a>
-</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a>
-</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a><span class="k">class</span> <span class="nc">ColumnPosition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-952"><a href="#L-952"><span class="linenos"> 952</span></a> <span class="n">arg_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;position&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a><span class="k">class</span> <span class="nc">ColumnPosition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a> <span class="n">arg_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;position&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-952"><a href="#L-952"><span class="linenos"> 952</span></a>
</span><span id="L-953"><a href="#L-953"><span class="linenos"> 953</span></a>
-</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a>
-</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a><span class="k">class</span> <span class="nc">ColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-956"><a href="#L-956"><span class="linenos"> 956</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-957"><a href="#L-957"><span class="linenos"> 957</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-958"><a href="#L-958"><span class="linenos"> 958</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-959"><a href="#L-959"><span class="linenos"> 959</span></a> <span class="s2">&quot;constraints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-960"><a href="#L-960"><span class="linenos"> 960</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-961"><a href="#L-961"><span class="linenos"> 961</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-962"><a href="#L-962"><span class="linenos"> 962</span></a> <span class="p">}</span>
+</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a><span class="k">class</span> <span class="nc">ColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-956"><a href="#L-956"><span class="linenos"> 956</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-957"><a href="#L-957"><span class="linenos"> 957</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-958"><a href="#L-958"><span class="linenos"> 958</span></a> <span class="s2">&quot;constraints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-959"><a href="#L-959"><span class="linenos"> 959</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-960"><a href="#L-960"><span class="linenos"> 960</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-961"><a href="#L-961"><span class="linenos"> 961</span></a> <span class="p">}</span>
+</span><span id="L-962"><a href="#L-962"><span class="linenos"> 962</span></a>
</span><span id="L-963"><a href="#L-963"><span class="linenos"> 963</span></a>
-</span><span id="L-964"><a href="#L-964"><span class="linenos"> 964</span></a>
-</span><span id="L-965"><a href="#L-965"><span class="linenos"> 965</span></a><span class="k">class</span> <span class="nc">AlterColumn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-967"><a href="#L-967"><span class="linenos"> 967</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-968"><a href="#L-968"><span class="linenos"> 968</span></a> <span class="s2">&quot;dtype&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</span></a> <span class="s2">&quot;collate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-970"><a href="#L-970"><span class="linenos"> 970</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-971"><a href="#L-971"><span class="linenos"> 971</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-972"><a href="#L-972"><span class="linenos"> 972</span></a> <span class="s2">&quot;drop&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-973"><a href="#L-973"><span class="linenos"> 973</span></a> <span class="p">}</span>
+</span><span id="L-964"><a href="#L-964"><span class="linenos"> 964</span></a><span class="k">class</span> <span class="nc">AlterColumn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-965"><a href="#L-965"><span class="linenos"> 965</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</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-967"><a href="#L-967"><span class="linenos"> 967</span></a> <span class="s2">&quot;dtype&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-968"><a href="#L-968"><span class="linenos"> 968</span></a> <span class="s2">&quot;collate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</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-970"><a href="#L-970"><span class="linenos"> 970</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-971"><a href="#L-971"><span class="linenos"> 971</span></a> <span class="s2">&quot;drop&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-972"><a href="#L-972"><span class="linenos"> 972</span></a> <span class="p">}</span>
+</span><span id="L-973"><a href="#L-973"><span class="linenos"> 973</span></a>
</span><span id="L-974"><a href="#L-974"><span class="linenos"> 974</span></a>
-</span><span id="L-975"><a href="#L-975"><span class="linenos"> 975</span></a>
-</span><span id="L-976"><a href="#L-976"><span class="linenos"> 976</span></a><span class="k">class</span> <span class="nc">RenameTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</span></a> <span class="k">pass</span>
+</span><span id="L-975"><a href="#L-975"><span class="linenos"> 975</span></a><span class="k">class</span> <span class="nc">RenameTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-976"><a href="#L-976"><span class="linenos"> 976</span></a> <span class="k">pass</span>
+</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</span></a>
</span><span id="L-978"><a href="#L-978"><span class="linenos"> 978</span></a>
-</span><span id="L-979"><a href="#L-979"><span class="linenos"> 979</span></a>
-</span><span id="L-980"><a href="#L-980"><span class="linenos"> 980</span></a><span class="k">class</span> <span class="nc">SetTag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-981"><a href="#L-981"><span class="linenos"> 981</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;unset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-979"><a href="#L-979"><span class="linenos"> 979</span></a><span class="k">class</span> <span class="nc">SetTag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-980"><a href="#L-980"><span class="linenos"> 980</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;unset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-981"><a href="#L-981"><span class="linenos"> 981</span></a>
</span><span id="L-982"><a href="#L-982"><span class="linenos"> 982</span></a>
-</span><span id="L-983"><a href="#L-983"><span class="linenos"> 983</span></a>
-</span><span id="L-984"><a href="#L-984"><span class="linenos"> 984</span></a><span class="k">class</span> <span class="nc">Comment</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-985"><a href="#L-985"><span class="linenos"> 985</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-983"><a href="#L-983"><span class="linenos"> 983</span></a><span class="k">class</span> <span class="nc">Comment</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-984"><a href="#L-984"><span class="linenos"> 984</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-985"><a href="#L-985"><span class="linenos"> 985</span></a>
</span><span id="L-986"><a href="#L-986"><span class="linenos"> 986</span></a>
-</span><span id="L-987"><a href="#L-987"><span class="linenos"> 987</span></a>
-</span><span id="L-988"><a href="#L-988"><span class="linenos"> 988</span></a><span class="k">class</span> <span class="nc">ColumnConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-989"><a href="#L-989"><span class="linenos"> 989</span></a> <span class="n">arg_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">True</span><span class="p">}</span>
+</span><span id="L-987"><a href="#L-987"><span class="linenos"> 987</span></a><span class="k">class</span> <span class="nc">ColumnConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-988"><a href="#L-988"><span class="linenos"> 988</span></a> <span class="n">arg_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">True</span><span class="p">}</span>
+</span><span id="L-989"><a href="#L-989"><span class="linenos"> 989</span></a>
</span><span id="L-990"><a href="#L-990"><span class="linenos"> 990</span></a>
-</span><span id="L-991"><a href="#L-991"><span class="linenos"> 991</span></a>
-</span><span id="L-992"><a href="#L-992"><span class="linenos"> 992</span></a><span class="k">class</span> <span class="nc">ColumnConstraintKind</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-993"><a href="#L-993"><span class="linenos"> 993</span></a> <span class="k">pass</span>
+</span><span id="L-991"><a href="#L-991"><span class="linenos"> 991</span></a><span class="k">class</span> <span class="nc">ColumnConstraintKind</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-992"><a href="#L-992"><span class="linenos"> 992</span></a> <span class="k">pass</span>
+</span><span id="L-993"><a href="#L-993"><span class="linenos"> 993</span></a>
</span><span id="L-994"><a href="#L-994"><span class="linenos"> 994</span></a>
-</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</span></a>
-</span><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a><span class="k">class</span> <span class="nc">AutoIncrementColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a> <span class="k">pass</span>
+</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</span></a><span class="k">class</span> <span class="nc">AutoIncrementColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a> <span class="k">pass</span>
+</span><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a>
</span><span id="L-998"><a href="#L-998"><span class="linenos"> 998</span></a>
-</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</span></a>
-</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a><span class="k">class</span> <span class="nc">CaseSpecificColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;not_&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</span></a><span class="k">class</span> <span class="nc">CaseSpecificColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;not_&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a>
</span><span id="L-1002"><a href="#L-1002"><span class="linenos">1002</span></a>
-</span><span id="L-1003"><a href="#L-1003"><span class="linenos">1003</span></a>
-</span><span id="L-1004"><a href="#L-1004"><span class="linenos">1004</span></a><span class="k">class</span> <span class="nc">CharacterSetColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1005"><a href="#L-1005"><span class="linenos">1005</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1003"><a href="#L-1003"><span class="linenos">1003</span></a><span class="k">class</span> <span class="nc">CharacterSetColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1004"><a href="#L-1004"><span class="linenos">1004</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1005"><a href="#L-1005"><span class="linenos">1005</span></a>
</span><span id="L-1006"><a href="#L-1006"><span class="linenos">1006</span></a>
-</span><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a>
-</span><span id="L-1008"><a href="#L-1008"><span class="linenos">1008</span></a><span class="k">class</span> <span class="nc">CheckColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1009"><a href="#L-1009"><span class="linenos">1009</span></a> <span class="k">pass</span>
+</span><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a><span class="k">class</span> <span class="nc">CheckColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1008"><a href="#L-1008"><span class="linenos">1008</span></a> <span class="k">pass</span>
+</span><span id="L-1009"><a href="#L-1009"><span class="linenos">1009</span></a>
</span><span id="L-1010"><a href="#L-1010"><span class="linenos">1010</span></a>
-</span><span id="L-1011"><a href="#L-1011"><span class="linenos">1011</span></a>
-</span><span id="L-1012"><a href="#L-1012"><span class="linenos">1012</span></a><span class="k">class</span> <span class="nc">CollateColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1013"><a href="#L-1013"><span class="linenos">1013</span></a> <span class="k">pass</span>
+</span><span id="L-1011"><a href="#L-1011"><span class="linenos">1011</span></a><span class="k">class</span> <span class="nc">CollateColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1012"><a href="#L-1012"><span class="linenos">1012</span></a> <span class="k">pass</span>
+</span><span id="L-1013"><a href="#L-1013"><span class="linenos">1013</span></a>
</span><span id="L-1014"><a href="#L-1014"><span class="linenos">1014</span></a>
-</span><span id="L-1015"><a href="#L-1015"><span class="linenos">1015</span></a>
-</span><span id="L-1016"><a href="#L-1016"><span class="linenos">1016</span></a><span class="k">class</span> <span class="nc">CommentColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1017"><a href="#L-1017"><span class="linenos">1017</span></a> <span class="k">pass</span>
+</span><span id="L-1015"><a href="#L-1015"><span class="linenos">1015</span></a><span class="k">class</span> <span class="nc">CommentColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1016"><a href="#L-1016"><span class="linenos">1016</span></a> <span class="k">pass</span>
+</span><span id="L-1017"><a href="#L-1017"><span class="linenos">1017</span></a>
</span><span id="L-1018"><a href="#L-1018"><span class="linenos">1018</span></a>
-</span><span id="L-1019"><a href="#L-1019"><span class="linenos">1019</span></a>
-</span><span id="L-1020"><a href="#L-1020"><span class="linenos">1020</span></a><span class="k">class</span> <span class="nc">CompressColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1021"><a href="#L-1021"><span class="linenos">1021</span></a> <span class="k">pass</span>
+</span><span id="L-1019"><a href="#L-1019"><span class="linenos">1019</span></a><span class="k">class</span> <span class="nc">CompressColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1020"><a href="#L-1020"><span class="linenos">1020</span></a> <span class="k">pass</span>
+</span><span id="L-1021"><a href="#L-1021"><span class="linenos">1021</span></a>
</span><span id="L-1022"><a href="#L-1022"><span class="linenos">1022</span></a>
-</span><span id="L-1023"><a href="#L-1023"><span class="linenos">1023</span></a>
-</span><span id="L-1024"><a href="#L-1024"><span class="linenos">1024</span></a><span class="k">class</span> <span class="nc">DateFormatColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1025"><a href="#L-1025"><span class="linenos">1025</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1023"><a href="#L-1023"><span class="linenos">1023</span></a><span class="k">class</span> <span class="nc">DateFormatColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1024"><a href="#L-1024"><span class="linenos">1024</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1025"><a href="#L-1025"><span class="linenos">1025</span></a>
</span><span id="L-1026"><a href="#L-1026"><span class="linenos">1026</span></a>
-</span><span id="L-1027"><a href="#L-1027"><span class="linenos">1027</span></a>
-</span><span id="L-1028"><a href="#L-1028"><span class="linenos">1028</span></a><span class="k">class</span> <span class="nc">DefaultColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1029"><a href="#L-1029"><span class="linenos">1029</span></a> <span class="k">pass</span>
+</span><span id="L-1027"><a href="#L-1027"><span class="linenos">1027</span></a><span class="k">class</span> <span class="nc">DefaultColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1028"><a href="#L-1028"><span class="linenos">1028</span></a> <span class="k">pass</span>
+</span><span id="L-1029"><a href="#L-1029"><span class="linenos">1029</span></a>
</span><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</span></a>
-</span><span id="L-1031"><a href="#L-1031"><span class="linenos">1031</span></a>
-</span><span id="L-1032"><a href="#L-1032"><span class="linenos">1032</span></a><span class="k">class</span> <span class="nc">EncodeColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1033"><a href="#L-1033"><span class="linenos">1033</span></a> <span class="k">pass</span>
+</span><span id="L-1031"><a href="#L-1031"><span class="linenos">1031</span></a><span class="k">class</span> <span class="nc">EncodeColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1032"><a href="#L-1032"><span class="linenos">1032</span></a> <span class="k">pass</span>
+</span><span id="L-1033"><a href="#L-1033"><span class="linenos">1033</span></a>
</span><span id="L-1034"><a href="#L-1034"><span class="linenos">1034</span></a>
-</span><span id="L-1035"><a href="#L-1035"><span class="linenos">1035</span></a>
-</span><span id="L-1036"><a href="#L-1036"><span class="linenos">1036</span></a><span class="k">class</span> <span class="nc">GeneratedAsIdentityColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1037"><a href="#L-1037"><span class="linenos">1037</span></a> <span class="c1"># this: True -&gt; ALWAYS, this: False -&gt; BY DEFAULT</span>
-</span><span id="L-1038"><a href="#L-1038"><span class="linenos">1038</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1039"><a href="#L-1039"><span class="linenos">1039</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-1040"><a href="#L-1040"><span class="linenos">1040</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-1041"><a href="#L-1041"><span class="linenos">1041</span></a> <span class="s2">&quot;increment&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1042"><a href="#L-1042"><span class="linenos">1042</span></a> <span class="s2">&quot;minvalue&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</span></a> <span class="s2">&quot;maxvalue&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1044"><a href="#L-1044"><span class="linenos">1044</span></a> <span class="s2">&quot;cycle&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1045"><a href="#L-1045"><span class="linenos">1045</span></a> <span class="p">}</span>
+</span><span id="L-1035"><a href="#L-1035"><span class="linenos">1035</span></a><span class="k">class</span> <span class="nc">GeneratedAsIdentityColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1036"><a href="#L-1036"><span class="linenos">1036</span></a> <span class="c1"># this: True -&gt; ALWAYS, this: False -&gt; BY DEFAULT</span>
+</span><span id="L-1037"><a href="#L-1037"><span class="linenos">1037</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1038"><a href="#L-1038"><span class="linenos">1038</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-1039"><a href="#L-1039"><span class="linenos">1039</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-1040"><a href="#L-1040"><span class="linenos">1040</span></a> <span class="s2">&quot;increment&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1041"><a href="#L-1041"><span class="linenos">1041</span></a> <span class="s2">&quot;minvalue&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1042"><a href="#L-1042"><span class="linenos">1042</span></a> <span class="s2">&quot;maxvalue&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</span></a> <span class="s2">&quot;cycle&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1044"><a href="#L-1044"><span class="linenos">1044</span></a> <span class="p">}</span>
+</span><span id="L-1045"><a href="#L-1045"><span class="linenos">1045</span></a>
</span><span id="L-1046"><a href="#L-1046"><span class="linenos">1046</span></a>
-</span><span id="L-1047"><a href="#L-1047"><span class="linenos">1047</span></a>
-</span><span id="L-1048"><a href="#L-1048"><span class="linenos">1048</span></a><span class="k">class</span> <span class="nc">InlineLengthColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1049"><a href="#L-1049"><span class="linenos">1049</span></a> <span class="k">pass</span>
+</span><span id="L-1047"><a href="#L-1047"><span class="linenos">1047</span></a><span class="k">class</span> <span class="nc">InlineLengthColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1048"><a href="#L-1048"><span class="linenos">1048</span></a> <span class="k">pass</span>
+</span><span id="L-1049"><a href="#L-1049"><span class="linenos">1049</span></a>
</span><span id="L-1050"><a href="#L-1050"><span class="linenos">1050</span></a>
-</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a>
-</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</span></a><span class="k">class</span> <span class="nc">NotNullColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1053"><a href="#L-1053"><span class="linenos">1053</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;allow_null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a><span class="k">class</span> <span class="nc">NotNullColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;allow_null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-1053"><a href="#L-1053"><span class="linenos">1053</span></a>
</span><span id="L-1054"><a href="#L-1054"><span class="linenos">1054</span></a>
-</span><span id="L-1055"><a href="#L-1055"><span class="linenos">1055</span></a>
-</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</span></a><span class="k">class</span> <span class="nc">PrimaryKeyColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1057"><a href="#L-1057"><span class="linenos">1057</span></a> <span class="n">arg_types</span> <span class="o">=</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><span id="L-1055"><a href="#L-1055"><span class="linenos">1055</span></a><span class="c1"># https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html</span>
+</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</span></a><span class="k">class</span> <span class="nc">OnUpdateColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1057"><a href="#L-1057"><span class="linenos">1057</span></a> <span class="k">pass</span>
</span><span id="L-1058"><a href="#L-1058"><span class="linenos">1058</span></a>
</span><span id="L-1059"><a href="#L-1059"><span class="linenos">1059</span></a>
-</span><span id="L-1060"><a href="#L-1060"><span class="linenos">1060</span></a><span class="k">class</span> <span class="nc">TitleColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a> <span class="k">pass</span>
+</span><span id="L-1060"><a href="#L-1060"><span class="linenos">1060</span></a><span class="k">class</span> <span class="nc">PrimaryKeyColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a> <span class="n">arg_types</span> <span class="o">=</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><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</span></a>
</span><span id="L-1063"><a href="#L-1063"><span class="linenos">1063</span></a>
-</span><span id="L-1064"><a href="#L-1064"><span class="linenos">1064</span></a><span class="k">class</span> <span class="nc">UniqueColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</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-1064"><a href="#L-1064"><span class="linenos">1064</span></a><span class="k">class</span> <span class="nc">TitleColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a> <span class="k">pass</span>
</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</span></a>
</span><span id="L-1067"><a href="#L-1067"><span class="linenos">1067</span></a>
-</span><span id="L-1068"><a href="#L-1068"><span class="linenos">1068</span></a><span class="k">class</span> <span class="nc">UppercaseColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1068"><a href="#L-1068"><span class="linenos">1068</span></a><span class="k">class</span> <span class="nc">UniqueColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1069"><a href="#L-1069"><span class="linenos">1069</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-1070"><a href="#L-1070"><span class="linenos">1070</span></a>
</span><span id="L-1071"><a href="#L-1071"><span class="linenos">1071</span></a>
-</span><span id="L-1072"><a href="#L-1072"><span class="linenos">1072</span></a><span class="k">class</span> <span class="nc">PathColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</span></a> <span class="k">pass</span>
+</span><span id="L-1072"><a href="#L-1072"><span class="linenos">1072</span></a><span class="k">class</span> <span class="nc">UppercaseColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</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-1074"><a href="#L-1074"><span class="linenos">1074</span></a>
</span><span id="L-1075"><a href="#L-1075"><span class="linenos">1075</span></a>
-</span><span id="L-1076"><a href="#L-1076"><span class="linenos">1076</span></a><span class="k">class</span> <span class="nc">Constraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1076"><a href="#L-1076"><span class="linenos">1076</span></a><span class="k">class</span> <span class="nc">PathColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</span></a> <span class="k">pass</span>
</span><span id="L-1078"><a href="#L-1078"><span class="linenos">1078</span></a>
</span><span id="L-1079"><a href="#L-1079"><span class="linenos">1079</span></a>
-</span><span id="L-1080"><a href="#L-1080"><span class="linenos">1080</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-1080"><a href="#L-1080"><span class="linenos">1080</span></a><span class="k">class</span> <span class="nc">Constraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1082"><a href="#L-1082"><span class="linenos">1082</span></a>
-</span><span id="L-1083"><a href="#L-1083"><span class="linenos">1083</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="L-1084"><a href="#L-1084"><span class="linenos">1084</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1085"><a href="#L-1085"><span class="linenos">1085</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-1086"><a href="#L-1086"><span class="linenos">1086</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-1087"><a href="#L-1087"><span class="linenos">1087</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-1088"><a href="#L-1088"><span class="linenos">1088</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1089"><a href="#L-1089"><span class="linenos">1089</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="L-1090"><a href="#L-1090"><span class="linenos">1090</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1091"><a href="#L-1091"><span class="linenos">1091</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
-</span><span id="L-1092"><a href="#L-1092"><span class="linenos">1092</span></a>
-</span><span id="L-1093"><a href="#L-1093"><span class="linenos">1093</span></a><span class="sd"> Example:</span>
-</span><span id="L-1094"><a href="#L-1094"><span class="linenos">1094</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
-</span><span id="L-1095"><a href="#L-1095"><span class="linenos">1095</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
+</span><span id="L-1083"><a href="#L-1083"><span class="linenos">1083</span></a>
+</span><span id="L-1084"><a href="#L-1084"><span class="linenos">1084</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1085"><a href="#L-1085"><span class="linenos">1085</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-1086"><a href="#L-1086"><span class="linenos">1086</span></a>
+</span><span id="L-1087"><a href="#L-1087"><span class="linenos">1087</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1089"><a href="#L-1089"><span class="linenos">1089</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-1090"><a href="#L-1090"><span class="linenos">1090</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-1091"><a href="#L-1091"><span class="linenos">1091</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-1092"><a href="#L-1092"><span class="linenos">1092</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1093"><a href="#L-1093"><span class="linenos">1093</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="L-1094"><a href="#L-1094"><span class="linenos">1094</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1095"><a href="#L-1095"><span class="linenos">1095</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
</span><span id="L-1096"><a href="#L-1096"><span class="linenos">1096</span></a>
-</span><span id="L-1097"><a href="#L-1097"><span class="linenos">1097</span></a><span class="sd"> Args:</span>
-</span><span id="L-1098"><a href="#L-1098"><span class="linenos">1098</span></a><span class="sd"> table: the table from which to delete.</span>
-</span><span id="L-1099"><a href="#L-1099"><span class="linenos">1099</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-1100"><a href="#L-1100"><span class="linenos">1100</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-1102"><a href="#L-1102"><span class="linenos">1102</span></a>
-</span><span id="L-1103"><a href="#L-1103"><span class="linenos">1103</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1104"><a href="#L-1104"><span class="linenos">1104</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="L-1105"><a href="#L-1105"><span class="linenos">1105</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1106"><a href="#L-1106"><span class="linenos">1106</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="L-1107"><a href="#L-1107"><span class="linenos">1107</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
-</span><span id="L-1108"><a href="#L-1108"><span class="linenos">1108</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1109"><a href="#L-1109"><span class="linenos">1109</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;this&quot;</span><span class="p">,</span>
-</span><span id="L-1110"><a href="#L-1110"><span class="linenos">1110</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1111"><a href="#L-1111"><span class="linenos">1111</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
-</span><span id="L-1112"><a href="#L-1112"><span class="linenos">1112</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</span></a> <span class="p">)</span>
-</span><span id="L-1115"><a href="#L-1115"><span class="linenos">1115</span></a>
-</span><span id="L-1116"><a href="#L-1116"><span class="linenos">1116</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
-</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</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><span id="L-1119"><a href="#L-1119"><span class="linenos">1119</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-1120"><a href="#L-1120"><span class="linenos">1120</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-1121"><a href="#L-1121"><span class="linenos">1121</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-1122"><a href="#L-1122"><span class="linenos">1122</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1123"><a href="#L-1123"><span class="linenos">1123</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="L-1124"><a href="#L-1124"><span class="linenos">1124</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1125"><a href="#L-1125"><span class="linenos">1125</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="L-1126"><a href="#L-1126"><span class="linenos">1126</span></a>
-</span><span id="L-1127"><a href="#L-1127"><span class="linenos">1127</span></a><span class="sd"> Example:</span>
-</span><span id="L-1128"><a href="#L-1128"><span class="linenos">1128</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
-</span><span id="L-1129"><a href="#L-1129"><span class="linenos">1129</span></a><span class="sd"> &quot;DELETE FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
+</span><span id="L-1097"><a href="#L-1097"><span class="linenos">1097</span></a><span class="sd"> Example:</span>
+</span><span id="L-1098"><a href="#L-1098"><span class="linenos">1098</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
+</span><span id="L-1099"><a href="#L-1099"><span class="linenos">1099</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
+</span><span id="L-1100"><a href="#L-1100"><span class="linenos">1100</span></a>
+</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a><span class="sd"> Args:</span>
+</span><span id="L-1102"><a href="#L-1102"><span class="linenos">1102</span></a><span class="sd"> table: the table from which to delete.</span>
+</span><span id="L-1103"><a href="#L-1103"><span class="linenos">1103</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-1104"><a href="#L-1104"><span class="linenos">1104</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1105"><a href="#L-1105"><span class="linenos">1105</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-1106"><a href="#L-1106"><span class="linenos">1106</span></a>
+</span><span id="L-1107"><a href="#L-1107"><span class="linenos">1107</span></a><span class="sd"> Returns:</span>
+</span><span id="L-1108"><a href="#L-1108"><span class="linenos">1108</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="L-1109"><a href="#L-1109"><span class="linenos">1109</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1110"><a href="#L-1110"><span class="linenos">1110</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="L-1111"><a href="#L-1111"><span class="linenos">1111</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
+</span><span id="L-1112"><a href="#L-1112"><span class="linenos">1112</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;this&quot;</span><span class="p">,</span>
+</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1115"><a href="#L-1115"><span class="linenos">1115</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
+</span><span id="L-1116"><a href="#L-1116"><span class="linenos">1116</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</span></a> <span class="p">)</span>
+</span><span id="L-1119"><a href="#L-1119"><span class="linenos">1119</span></a>
+</span><span id="L-1120"><a href="#L-1120"><span class="linenos">1120</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="L-1121"><a href="#L-1121"><span class="linenos">1121</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1122"><a href="#L-1122"><span class="linenos">1122</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><span id="L-1123"><a href="#L-1123"><span class="linenos">1123</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-1124"><a href="#L-1124"><span class="linenos">1124</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-1125"><a href="#L-1125"><span class="linenos">1125</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-1126"><a href="#L-1126"><span class="linenos">1126</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1127"><a href="#L-1127"><span class="linenos">1127</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="L-1128"><a href="#L-1128"><span class="linenos">1128</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1129"><a href="#L-1129"><span class="linenos">1129</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
</span><span id="L-1130"><a href="#L-1130"><span class="linenos">1130</span></a>
-</span><span id="L-1131"><a href="#L-1131"><span class="linenos">1131</span></a><span class="sd"> Args:</span>
-</span><span id="L-1132"><a href="#L-1132"><span class="linenos">1132</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-1133"><a href="#L-1133"><span class="linenos">1133</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-1134"><a href="#L-1134"><span class="linenos">1134</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="L-1135"><a href="#L-1135"><span class="linenos">1135</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="L-1136"><a href="#L-1136"><span class="linenos">1136</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-1137"><a href="#L-1137"><span class="linenos">1137</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-1138"><a href="#L-1138"><span class="linenos">1138</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1139"><a href="#L-1139"><span class="linenos">1139</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-1140"><a href="#L-1140"><span class="linenos">1140</span></a>
-</span><span id="L-1141"><a href="#L-1141"><span class="linenos">1141</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1142"><a href="#L-1142"><span class="linenos">1142</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="L-1143"><a href="#L-1143"><span class="linenos">1143</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1144"><a href="#L-1144"><span class="linenos">1144</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-1145"><a href="#L-1145"><span class="linenos">1145</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-1146"><a href="#L-1146"><span class="linenos">1146</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1147"><a href="#L-1147"><span class="linenos">1147</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-1148"><a href="#L-1148"><span class="linenos">1148</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-1149"><a href="#L-1149"><span class="linenos">1149</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="L-1150"><a href="#L-1150"><span class="linenos">1150</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1151"><a href="#L-1151"><span class="linenos">1151</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-1152"><a href="#L-1152"><span class="linenos">1152</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1153"><a href="#L-1153"><span class="linenos">1153</span></a> <span class="p">)</span>
-</span><span id="L-1154"><a href="#L-1154"><span class="linenos">1154</span></a>
-</span><span id="L-1155"><a href="#L-1155"><span class="linenos">1155</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
-</span><span id="L-1156"><a href="#L-1156"><span class="linenos">1156</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1157"><a href="#L-1157"><span class="linenos">1157</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-1158"><a href="#L-1158"><span class="linenos">1158</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-1159"><a href="#L-1159"><span class="linenos">1159</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-1160"><a href="#L-1160"><span class="linenos">1160</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1161"><a href="#L-1161"><span class="linenos">1161</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="L-1162"><a href="#L-1162"><span class="linenos">1162</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1163"><a href="#L-1163"><span class="linenos">1163</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
-</span><span id="L-1164"><a href="#L-1164"><span class="linenos">1164</span></a>
-</span><span id="L-1165"><a href="#L-1165"><span class="linenos">1165</span></a><span class="sd"> Example:</span>
-</span><span id="L-1166"><a href="#L-1166"><span class="linenos">1166</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
-</span><span id="L-1167"><a href="#L-1167"><span class="linenos">1167</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+</span><span id="L-1131"><a href="#L-1131"><span class="linenos">1131</span></a><span class="sd"> Example:</span>
+</span><span id="L-1132"><a href="#L-1132"><span class="linenos">1132</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
+</span><span id="L-1133"><a href="#L-1133"><span class="linenos">1133</span></a><span class="sd"> &quot;DELETE FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
+</span><span id="L-1134"><a href="#L-1134"><span class="linenos">1134</span></a>
+</span><span id="L-1135"><a href="#L-1135"><span class="linenos">1135</span></a><span class="sd"> Args:</span>
+</span><span id="L-1136"><a href="#L-1136"><span class="linenos">1136</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-1137"><a href="#L-1137"><span class="linenos">1137</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-1138"><a href="#L-1138"><span class="linenos">1138</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="L-1139"><a href="#L-1139"><span class="linenos">1139</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="L-1140"><a href="#L-1140"><span class="linenos">1140</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-1141"><a href="#L-1141"><span class="linenos">1141</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-1142"><a href="#L-1142"><span class="linenos">1142</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1143"><a href="#L-1143"><span class="linenos">1143</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-1144"><a href="#L-1144"><span class="linenos">1144</span></a>
+</span><span id="L-1145"><a href="#L-1145"><span class="linenos">1145</span></a><span class="sd"> Returns:</span>
+</span><span id="L-1146"><a href="#L-1146"><span class="linenos">1146</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="L-1147"><a href="#L-1147"><span class="linenos">1147</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1148"><a href="#L-1148"><span class="linenos">1148</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-1149"><a href="#L-1149"><span class="linenos">1149</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-1150"><a href="#L-1150"><span class="linenos">1150</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1151"><a href="#L-1151"><span class="linenos">1151</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-1152"><a href="#L-1152"><span class="linenos">1152</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-1153"><a href="#L-1153"><span class="linenos">1153</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
+</span><span id="L-1154"><a href="#L-1154"><span class="linenos">1154</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1155"><a href="#L-1155"><span class="linenos">1155</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-1156"><a href="#L-1156"><span class="linenos">1156</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1157"><a href="#L-1157"><span class="linenos">1157</span></a> <span class="p">)</span>
+</span><span id="L-1158"><a href="#L-1158"><span class="linenos">1158</span></a>
+</span><span id="L-1159"><a href="#L-1159"><span class="linenos">1159</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
+</span><span id="L-1160"><a href="#L-1160"><span class="linenos">1160</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1161"><a href="#L-1161"><span class="linenos">1161</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-1162"><a href="#L-1162"><span class="linenos">1162</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-1163"><a href="#L-1163"><span class="linenos">1163</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-1164"><a href="#L-1164"><span class="linenos">1164</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1165"><a href="#L-1165"><span class="linenos">1165</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="L-1166"><a href="#L-1166"><span class="linenos">1166</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1167"><a href="#L-1167"><span class="linenos">1167</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
</span><span id="L-1168"><a href="#L-1168"><span class="linenos">1168</span></a>
-</span><span id="L-1169"><a href="#L-1169"><span class="linenos">1169</span></a><span class="sd"> Args:</span>
-</span><span id="L-1170"><a href="#L-1170"><span class="linenos">1170</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="L-1171"><a href="#L-1171"><span class="linenos">1171</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-1172"><a href="#L-1172"><span class="linenos">1172</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-1173"><a href="#L-1173"><span class="linenos">1173</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1174"><a href="#L-1174"><span class="linenos">1174</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-1175"><a href="#L-1175"><span class="linenos">1175</span></a>
-</span><span id="L-1176"><a href="#L-1176"><span class="linenos">1176</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1177"><a href="#L-1177"><span class="linenos">1177</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="L-1178"><a href="#L-1178"><span class="linenos">1178</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1179"><a href="#L-1179"><span class="linenos">1179</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="L-1180"><a href="#L-1180"><span class="linenos">1180</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="L-1181"><a href="#L-1181"><span class="linenos">1181</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1182"><a href="#L-1182"><span class="linenos">1182</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;returning&quot;</span><span class="p">,</span>
-</span><span id="L-1183"><a href="#L-1183"><span class="linenos">1183</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;RETURNING&quot;</span><span class="p">,</span>
-</span><span id="L-1184"><a href="#L-1184"><span class="linenos">1184</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1185"><a href="#L-1185"><span class="linenos">1185</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-1186"><a href="#L-1186"><span class="linenos">1186</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
-</span><span id="L-1187"><a href="#L-1187"><span class="linenos">1187</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1188"><a href="#L-1188"><span class="linenos">1188</span></a> <span class="p">)</span>
-</span><span id="L-1189"><a href="#L-1189"><span class="linenos">1189</span></a>
-</span><span id="L-1190"><a href="#L-1190"><span class="linenos">1190</span></a>
-</span><span id="L-1191"><a href="#L-1191"><span class="linenos">1191</span></a><span class="k">class</span> <span class="nc">Drop</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1192"><a href="#L-1192"><span class="linenos">1192</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1193"><a href="#L-1193"><span class="linenos">1193</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-1194"><a href="#L-1194"><span class="linenos">1194</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-1195"><a href="#L-1195"><span class="linenos">1195</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-1196"><a href="#L-1196"><span class="linenos">1196</span></a> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1197"><a href="#L-1197"><span class="linenos">1197</span></a> <span class="s2">&quot;materialized&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1198"><a href="#L-1198"><span class="linenos">1198</span></a> <span class="s2">&quot;cascade&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1199"><a href="#L-1199"><span class="linenos">1199</span></a> <span class="s2">&quot;constraints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1200"><a href="#L-1200"><span class="linenos">1200</span></a> <span class="p">}</span>
-</span><span id="L-1201"><a href="#L-1201"><span class="linenos">1201</span></a>
-</span><span id="L-1202"><a href="#L-1202"><span class="linenos">1202</span></a>
-</span><span id="L-1203"><a href="#L-1203"><span class="linenos">1203</span></a><span class="k">class</span> <span class="nc">Filter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1204"><a href="#L-1204"><span class="linenos">1204</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-1205"><a href="#L-1205"><span class="linenos">1205</span></a>
+</span><span id="L-1169"><a href="#L-1169"><span class="linenos">1169</span></a><span class="sd"> Example:</span>
+</span><span id="L-1170"><a href="#L-1170"><span class="linenos">1170</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
+</span><span id="L-1171"><a href="#L-1171"><span class="linenos">1171</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+</span><span id="L-1172"><a href="#L-1172"><span class="linenos">1172</span></a>
+</span><span id="L-1173"><a href="#L-1173"><span class="linenos">1173</span></a><span class="sd"> Args:</span>
+</span><span id="L-1174"><a href="#L-1174"><span class="linenos">1174</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="L-1175"><a href="#L-1175"><span class="linenos">1175</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-1176"><a href="#L-1176"><span class="linenos">1176</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-1177"><a href="#L-1177"><span class="linenos">1177</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1178"><a href="#L-1178"><span class="linenos">1178</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-1179"><a href="#L-1179"><span class="linenos">1179</span></a>
+</span><span id="L-1180"><a href="#L-1180"><span class="linenos">1180</span></a><span class="sd"> Returns:</span>
+</span><span id="L-1181"><a href="#L-1181"><span class="linenos">1181</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="L-1182"><a href="#L-1182"><span class="linenos">1182</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1183"><a href="#L-1183"><span class="linenos">1183</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="L-1184"><a href="#L-1184"><span class="linenos">1184</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="L-1185"><a href="#L-1185"><span class="linenos">1185</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1186"><a href="#L-1186"><span class="linenos">1186</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;returning&quot;</span><span class="p">,</span>
+</span><span id="L-1187"><a href="#L-1187"><span class="linenos">1187</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;RETURNING&quot;</span><span class="p">,</span>
+</span><span id="L-1188"><a href="#L-1188"><span class="linenos">1188</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1189"><a href="#L-1189"><span class="linenos">1189</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-1190"><a href="#L-1190"><span class="linenos">1190</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
+</span><span id="L-1191"><a href="#L-1191"><span class="linenos">1191</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1192"><a href="#L-1192"><span class="linenos">1192</span></a> <span class="p">)</span>
+</span><span id="L-1193"><a href="#L-1193"><span class="linenos">1193</span></a>
+</span><span id="L-1194"><a href="#L-1194"><span class="linenos">1194</span></a>
+</span><span id="L-1195"><a href="#L-1195"><span class="linenos">1195</span></a><span class="k">class</span> <span class="nc">Drop</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1196"><a href="#L-1196"><span class="linenos">1196</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1197"><a href="#L-1197"><span class="linenos">1197</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-1198"><a href="#L-1198"><span class="linenos">1198</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-1199"><a href="#L-1199"><span class="linenos">1199</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-1200"><a href="#L-1200"><span class="linenos">1200</span></a> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1201"><a href="#L-1201"><span class="linenos">1201</span></a> <span class="s2">&quot;materialized&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1202"><a href="#L-1202"><span class="linenos">1202</span></a> <span class="s2">&quot;cascade&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1203"><a href="#L-1203"><span class="linenos">1203</span></a> <span class="s2">&quot;constraints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1204"><a href="#L-1204"><span class="linenos">1204</span></a> <span class="s2">&quot;purge&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1205"><a href="#L-1205"><span class="linenos">1205</span></a> <span class="p">}</span>
</span><span id="L-1206"><a href="#L-1206"><span class="linenos">1206</span></a>
-</span><span id="L-1207"><a href="#L-1207"><span class="linenos">1207</span></a><span class="k">class</span> <span class="nc">Check</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1208"><a href="#L-1208"><span class="linenos">1208</span></a> <span class="k">pass</span>
-</span><span id="L-1209"><a href="#L-1209"><span class="linenos">1209</span></a>
+</span><span id="L-1207"><a href="#L-1207"><span class="linenos">1207</span></a>
+</span><span id="L-1208"><a href="#L-1208"><span class="linenos">1208</span></a><span class="k">class</span> <span class="nc">Filter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1209"><a href="#L-1209"><span class="linenos">1209</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-1210"><a href="#L-1210"><span class="linenos">1210</span></a>
-</span><span id="L-1211"><a href="#L-1211"><span class="linenos">1211</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-1212"><a href="#L-1212"><span class="linenos">1212</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-1213"><a href="#L-1213"><span class="linenos">1213</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1211"><a href="#L-1211"><span class="linenos">1211</span></a>
+</span><span id="L-1212"><a href="#L-1212"><span class="linenos">1212</span></a><span class="k">class</span> <span class="nc">Check</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1213"><a href="#L-1213"><span class="linenos">1213</span></a> <span class="k">pass</span>
</span><span id="L-1214"><a href="#L-1214"><span class="linenos">1214</span></a>
</span><span id="L-1215"><a href="#L-1215"><span class="linenos">1215</span></a>
-</span><span id="L-1216"><a href="#L-1216"><span class="linenos">1216</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-1217"><a href="#L-1217"><span class="linenos">1217</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1218"><a href="#L-1218"><span class="linenos">1218</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-1219"><a href="#L-1219"><span class="linenos">1219</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-1220"><a href="#L-1220"><span class="linenos">1220</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-1221"><a href="#L-1221"><span class="linenos">1221</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-1222"><a href="#L-1222"><span class="linenos">1222</span></a> <span class="p">}</span>
-</span><span id="L-1223"><a href="#L-1223"><span class="linenos">1223</span></a>
-</span><span id="L-1224"><a href="#L-1224"><span class="linenos">1224</span></a>
-</span><span id="L-1225"><a href="#L-1225"><span class="linenos">1225</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-1226"><a href="#L-1226"><span class="linenos">1226</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-1227"><a href="#L-1227"><span class="linenos">1227</span></a>
+</span><span id="L-1216"><a href="#L-1216"><span class="linenos">1216</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-1217"><a href="#L-1217"><span class="linenos">1217</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-1218"><a href="#L-1218"><span class="linenos">1218</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1219"><a href="#L-1219"><span class="linenos">1219</span></a>
+</span><span id="L-1220"><a href="#L-1220"><span class="linenos">1220</span></a>
+</span><span id="L-1221"><a href="#L-1221"><span class="linenos">1221</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-1222"><a href="#L-1222"><span class="linenos">1222</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1223"><a href="#L-1223"><span class="linenos">1223</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-1224"><a href="#L-1224"><span class="linenos">1224</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-1225"><a href="#L-1225"><span class="linenos">1225</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-1226"><a href="#L-1226"><span class="linenos">1226</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-1227"><a href="#L-1227"><span class="linenos">1227</span></a> <span class="p">}</span>
</span><span id="L-1228"><a href="#L-1228"><span class="linenos">1228</span></a>
-</span><span id="L-1229"><a href="#L-1229"><span class="linenos">1229</span></a><span class="k">class</span> <span class="nc">Unique</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1230"><a href="#L-1230"><span class="linenos">1230</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-1231"><a href="#L-1231"><span class="linenos">1231</span></a>
+</span><span id="L-1229"><a href="#L-1229"><span class="linenos">1229</span></a>
+</span><span id="L-1230"><a href="#L-1230"><span class="linenos">1230</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-1231"><a href="#L-1231"><span class="linenos">1231</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-1232"><a href="#L-1232"><span class="linenos">1232</span></a>
-</span><span id="L-1233"><a href="#L-1233"><span class="linenos">1233</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/sql-selectinto.html</span>
-</span><span id="L-1234"><a href="#L-1234"><span class="linenos">1234</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-1235"><a href="#L-1235"><span class="linenos">1235</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-1236"><a href="#L-1236"><span class="linenos">1236</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1233"><a href="#L-1233"><span class="linenos">1233</span></a>
+</span><span id="L-1234"><a href="#L-1234"><span class="linenos">1234</span></a><span class="k">class</span> <span class="nc">Unique</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1235"><a href="#L-1235"><span class="linenos">1235</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-1236"><a href="#L-1236"><span class="linenos">1236</span></a>
</span><span id="L-1237"><a href="#L-1237"><span class="linenos">1237</span></a>
-</span><span id="L-1238"><a href="#L-1238"><span class="linenos">1238</span></a>
-</span><span id="L-1239"><a href="#L-1239"><span class="linenos">1239</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-1240"><a href="#L-1240"><span class="linenos">1240</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-1241"><a href="#L-1241"><span class="linenos">1241</span></a>
+</span><span id="L-1238"><a href="#L-1238"><span class="linenos">1238</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/sql-selectinto.html</span>
+</span><span id="L-1239"><a href="#L-1239"><span class="linenos">1239</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-1240"><a href="#L-1240"><span class="linenos">1240</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-1241"><a href="#L-1241"><span class="linenos">1241</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1242"><a href="#L-1242"><span class="linenos">1242</span></a>
-</span><span id="L-1243"><a href="#L-1243"><span class="linenos">1243</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-1244"><a href="#L-1244"><span class="linenos">1244</span></a> <span class="k">pass</span>
-</span><span id="L-1245"><a href="#L-1245"><span class="linenos">1245</span></a>
+</span><span id="L-1243"><a href="#L-1243"><span class="linenos">1243</span></a>
+</span><span id="L-1244"><a href="#L-1244"><span class="linenos">1244</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-1245"><a href="#L-1245"><span class="linenos">1245</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-1246"><a href="#L-1246"><span class="linenos">1246</span></a>
-</span><span id="L-1247"><a href="#L-1247"><span class="linenos">1247</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-1248"><a href="#L-1248"><span class="linenos">1248</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-1249"><a href="#L-1249"><span class="linenos">1249</span></a>
+</span><span id="L-1247"><a href="#L-1247"><span class="linenos">1247</span></a>
+</span><span id="L-1248"><a href="#L-1248"><span class="linenos">1248</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-1249"><a href="#L-1249"><span class="linenos">1249</span></a> <span class="k">pass</span>
</span><span id="L-1250"><a href="#L-1250"><span class="linenos">1250</span></a>
-</span><span id="L-1251"><a href="#L-1251"><span class="linenos">1251</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-1252"><a href="#L-1252"><span class="linenos">1252</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1253"><a href="#L-1253"><span class="linenos">1253</span></a>
+</span><span id="L-1251"><a href="#L-1251"><span class="linenos">1251</span></a>
+</span><span id="L-1252"><a href="#L-1252"><span class="linenos">1252</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-1253"><a href="#L-1253"><span class="linenos">1253</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-1254"><a href="#L-1254"><span class="linenos">1254</span></a>
-</span><span id="L-1255"><a href="#L-1255"><span class="linenos">1255</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-1256"><a href="#L-1256"><span class="linenos">1256</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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><span id="L-1257"><a href="#L-1257"><span class="linenos">1257</span></a>
-</span><span id="L-1258"><a href="#L-1258"><span class="linenos">1258</span></a> <span class="nd">@property</span>
-</span><span id="L-1259"><a href="#L-1259"><span class="linenos">1259</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><span id="L-1260"><a href="#L-1260"><span class="linenos">1260</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-1261"><a href="#L-1261"><span class="linenos">1261</span></a>
-</span><span id="L-1262"><a href="#L-1262"><span class="linenos">1262</span></a> <span class="nd">@property</span>
-</span><span id="L-1263"><a href="#L-1263"><span class="linenos">1263</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-1264"><a href="#L-1264"><span class="linenos">1264</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span><span class="n">char</span><span class="o">.</span><span class="n">isupper</span><span class="p">()</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">):</span>
-</span><span id="L-1265"><a href="#L-1265"><span class="linenos">1265</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-1266"><a href="#L-1266"><span class="linenos">1266</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">lower</span><span class="p">()</span>
-</span><span id="L-1267"><a href="#L-1267"><span class="linenos">1267</span></a>
-</span><span id="L-1268"><a href="#L-1268"><span class="linenos">1268</span></a> <span class="nd">@property</span>
-</span><span id="L-1269"><a href="#L-1269"><span class="linenos">1269</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-1270"><a href="#L-1270"><span class="linenos">1270</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-1271"><a href="#L-1271"><span class="linenos">1271</span></a>
+</span><span id="L-1255"><a href="#L-1255"><span class="linenos">1255</span></a>
+</span><span id="L-1256"><a href="#L-1256"><span class="linenos">1256</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-1257"><a href="#L-1257"><span class="linenos">1257</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1258"><a href="#L-1258"><span class="linenos">1258</span></a>
+</span><span id="L-1259"><a href="#L-1259"><span class="linenos">1259</span></a>
+</span><span id="L-1260"><a href="#L-1260"><span class="linenos">1260</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-1261"><a href="#L-1261"><span class="linenos">1261</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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><span id="L-1262"><a href="#L-1262"><span class="linenos">1262</span></a>
+</span><span id="L-1263"><a href="#L-1263"><span class="linenos">1263</span></a> <span class="nd">@property</span>
+</span><span id="L-1264"><a href="#L-1264"><span class="linenos">1264</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><span id="L-1265"><a href="#L-1265"><span class="linenos">1265</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-1266"><a href="#L-1266"><span class="linenos">1266</span></a>
+</span><span id="L-1267"><a href="#L-1267"><span class="linenos">1267</span></a> <span class="nd">@property</span>
+</span><span id="L-1268"><a href="#L-1268"><span class="linenos">1268</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-1269"><a href="#L-1269"><span class="linenos">1269</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span><span class="n">char</span><span class="o">.</span><span class="n">isupper</span><span class="p">()</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">):</span>
+</span><span id="L-1270"><a href="#L-1270"><span class="linenos">1270</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-1271"><a href="#L-1271"><span class="linenos">1271</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">lower</span><span class="p">()</span>
</span><span id="L-1272"><a href="#L-1272"><span class="linenos">1272</span></a>
-</span><span id="L-1273"><a href="#L-1273"><span class="linenos">1273</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-1274"><a href="#L-1274"><span class="linenos">1274</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1275"><a href="#L-1275"><span class="linenos">1275</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-1276"><a href="#L-1276"><span class="linenos">1276</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-1277"><a href="#L-1277"><span class="linenos">1277</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-1278"><a href="#L-1278"><span class="linenos">1278</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-1279"><a href="#L-1279"><span class="linenos">1279</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-1280"><a href="#L-1280"><span class="linenos">1280</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-1281"><a href="#L-1281"><span class="linenos">1281</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-1282"><a href="#L-1282"><span class="linenos">1282</span></a> <span class="p">}</span>
-</span><span id="L-1283"><a href="#L-1283"><span class="linenos">1283</span></a>
-</span><span id="L-1284"><a href="#L-1284"><span class="linenos">1284</span></a>
-</span><span id="L-1285"><a href="#L-1285"><span class="linenos">1285</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1286"><a href="#L-1286"><span class="linenos">1286</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1287"><a href="#L-1287"><span class="linenos">1287</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-1288"><a href="#L-1288"><span class="linenos">1288</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-1289"><a href="#L-1289"><span class="linenos">1289</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-1290"><a href="#L-1290"><span class="linenos">1290</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-1291"><a href="#L-1291"><span class="linenos">1291</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-1292"><a href="#L-1292"><span class="linenos">1292</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-1293"><a href="#L-1293"><span class="linenos">1293</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-1294"><a href="#L-1294"><span class="linenos">1294</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-1295"><a href="#L-1295"><span class="linenos">1295</span></a> <span class="p">}</span>
-</span><span id="L-1296"><a href="#L-1296"><span class="linenos">1296</span></a>
-</span><span id="L-1297"><a href="#L-1297"><span class="linenos">1297</span></a>
-</span><span id="L-1298"><a href="#L-1298"><span class="linenos">1298</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-1299"><a href="#L-1299"><span class="linenos">1299</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-1300"><a href="#L-1300"><span class="linenos">1300</span></a>
-</span><span id="L-1301"><a href="#L-1301"><span class="linenos">1301</span></a>
-</span><span id="L-1302"><a href="#L-1302"><span class="linenos">1302</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html</span>
-</span><span id="L-1303"><a href="#L-1303"><span class="linenos">1303</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-1304"><a href="#L-1304"><span class="linenos">1304</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-1305"><a href="#L-1305"><span class="linenos">1305</span></a>
-</span><span id="L-1306"><a href="#L-1306"><span class="linenos">1306</span></a>
-</span><span id="L-1307"><a href="#L-1307"><span class="linenos">1307</span></a><span class="c1"># national char, like n&#39;utf8&#39;</span>
-</span><span id="L-1308"><a href="#L-1308"><span class="linenos">1308</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-1309"><a href="#L-1309"><span class="linenos">1309</span></a> <span class="k">pass</span>
-</span><span id="L-1310"><a href="#L-1310"><span class="linenos">1310</span></a>
-</span><span id="L-1311"><a href="#L-1311"><span class="linenos">1311</span></a>
-</span><span id="L-1312"><a href="#L-1312"><span class="linenos">1312</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-1313"><a href="#L-1313"><span class="linenos">1313</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1314"><a href="#L-1314"><span class="linenos">1314</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-1315"><a href="#L-1315"><span class="linenos">1315</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-1316"><a href="#L-1316"><span class="linenos">1316</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-1317"><a href="#L-1317"><span class="linenos">1317</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-1318"><a href="#L-1318"><span class="linenos">1318</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-1319"><a href="#L-1319"><span class="linenos">1319</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-1320"><a href="#L-1320"><span class="linenos">1320</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-1321"><a href="#L-1321"><span class="linenos">1321</span></a> <span class="p">}</span>
+</span><span id="L-1273"><a href="#L-1273"><span class="linenos">1273</span></a> <span class="nd">@property</span>
+</span><span id="L-1274"><a href="#L-1274"><span class="linenos">1274</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-1275"><a href="#L-1275"><span class="linenos">1275</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-1276"><a href="#L-1276"><span class="linenos">1276</span></a>
+</span><span id="L-1277"><a href="#L-1277"><span class="linenos">1277</span></a>
+</span><span id="L-1278"><a href="#L-1278"><span class="linenos">1278</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-1279"><a href="#L-1279"><span class="linenos">1279</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1280"><a href="#L-1280"><span class="linenos">1280</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-1281"><a href="#L-1281"><span class="linenos">1281</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-1282"><a href="#L-1282"><span class="linenos">1282</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-1283"><a href="#L-1283"><span class="linenos">1283</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-1284"><a href="#L-1284"><span class="linenos">1284</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-1285"><a href="#L-1285"><span class="linenos">1285</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-1286"><a href="#L-1286"><span class="linenos">1286</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-1287"><a href="#L-1287"><span class="linenos">1287</span></a> <span class="p">}</span>
+</span><span id="L-1288"><a href="#L-1288"><span class="linenos">1288</span></a>
+</span><span id="L-1289"><a href="#L-1289"><span class="linenos">1289</span></a>
+</span><span id="L-1290"><a href="#L-1290"><span class="linenos">1290</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1291"><a href="#L-1291"><span class="linenos">1291</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1292"><a href="#L-1292"><span class="linenos">1292</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-1293"><a href="#L-1293"><span class="linenos">1293</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-1294"><a href="#L-1294"><span class="linenos">1294</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-1295"><a href="#L-1295"><span class="linenos">1295</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-1296"><a href="#L-1296"><span class="linenos">1296</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-1297"><a href="#L-1297"><span class="linenos">1297</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-1298"><a href="#L-1298"><span class="linenos">1298</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-1299"><a href="#L-1299"><span class="linenos">1299</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-1300"><a href="#L-1300"><span class="linenos">1300</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-1301"><a href="#L-1301"><span class="linenos">1301</span></a> <span class="p">}</span>
+</span><span id="L-1302"><a href="#L-1302"><span class="linenos">1302</span></a>
+</span><span id="L-1303"><a href="#L-1303"><span class="linenos">1303</span></a>
+</span><span id="L-1304"><a href="#L-1304"><span class="linenos">1304</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-1305"><a href="#L-1305"><span class="linenos">1305</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1306"><a href="#L-1306"><span class="linenos">1306</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-1307"><a href="#L-1307"><span class="linenos">1307</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-1308"><a href="#L-1308"><span class="linenos">1308</span></a> <span class="s2">&quot;nothing&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1309"><a href="#L-1309"><span class="linenos">1309</span></a> <span class="s2">&quot;key&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1310"><a href="#L-1310"><span class="linenos">1310</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-1311"><a href="#L-1311"><span class="linenos">1311</span></a> <span class="p">}</span>
+</span><span id="L-1312"><a href="#L-1312"><span class="linenos">1312</span></a>
+</span><span id="L-1313"><a href="#L-1313"><span class="linenos">1313</span></a>
+</span><span id="L-1314"><a href="#L-1314"><span class="linenos">1314</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-1315"><a href="#L-1315"><span class="linenos">1315</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-1316"><a href="#L-1316"><span class="linenos">1316</span></a>
+</span><span id="L-1317"><a href="#L-1317"><span class="linenos">1317</span></a>
+</span><span id="L-1318"><a href="#L-1318"><span class="linenos">1318</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html</span>
+</span><span id="L-1319"><a href="#L-1319"><span class="linenos">1319</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-1320"><a href="#L-1320"><span class="linenos">1320</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-1321"><a href="#L-1321"><span class="linenos">1321</span></a>
</span><span id="L-1322"><a href="#L-1322"><span class="linenos">1322</span></a>
-</span><span id="L-1323"><a href="#L-1323"><span class="linenos">1323</span></a>
-</span><span id="L-1324"><a href="#L-1324"><span class="linenos">1324</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-1325"><a href="#L-1325"><span class="linenos">1325</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-1323"><a href="#L-1323"><span class="linenos">1323</span></a><span class="c1"># national char, like n&#39;utf8&#39;</span>
+</span><span id="L-1324"><a href="#L-1324"><span class="linenos">1324</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-1325"><a href="#L-1325"><span class="linenos">1325</span></a> <span class="k">pass</span>
</span><span id="L-1326"><a href="#L-1326"><span class="linenos">1326</span></a>
</span><span id="L-1327"><a href="#L-1327"><span class="linenos">1327</span></a>
-</span><span id="L-1328"><a href="#L-1328"><span class="linenos">1328</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-1329"><a href="#L-1329"><span class="linenos">1329</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;direction&quot;</span><span class="p">:</span> <span class="kc">False</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-1330"><a href="#L-1330"><span class="linenos">1330</span></a>
-</span><span id="L-1331"><a href="#L-1331"><span class="linenos">1331</span></a>
-</span><span id="L-1332"><a href="#L-1332"><span class="linenos">1332</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-1333"><a href="#L-1333"><span class="linenos">1333</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1334"><a href="#L-1334"><span class="linenos">1334</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-1335"><a href="#L-1335"><span class="linenos">1335</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-1336"><a href="#L-1336"><span class="linenos">1336</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-1337"><a href="#L-1337"><span class="linenos">1337</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-1338"><a href="#L-1338"><span class="linenos">1338</span></a> <span class="p">}</span>
+</span><span id="L-1328"><a href="#L-1328"><span class="linenos">1328</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-1329"><a href="#L-1329"><span class="linenos">1329</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1330"><a href="#L-1330"><span class="linenos">1330</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-1331"><a href="#L-1331"><span class="linenos">1331</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-1332"><a href="#L-1332"><span class="linenos">1332</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-1333"><a href="#L-1333"><span class="linenos">1333</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-1334"><a href="#L-1334"><span class="linenos">1334</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-1335"><a href="#L-1335"><span class="linenos">1335</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-1336"><a href="#L-1336"><span class="linenos">1336</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-1337"><a href="#L-1337"><span class="linenos">1337</span></a> <span class="p">}</span>
+</span><span id="L-1338"><a href="#L-1338"><span class="linenos">1338</span></a>
</span><span id="L-1339"><a href="#L-1339"><span class="linenos">1339</span></a>
-</span><span id="L-1340"><a href="#L-1340"><span class="linenos">1340</span></a>
-</span><span id="L-1341"><a href="#L-1341"><span class="linenos">1341</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-1342"><a href="#L-1342"><span class="linenos">1342</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1340"><a href="#L-1340"><span class="linenos">1340</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-1341"><a href="#L-1341"><span class="linenos">1341</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-1342"><a href="#L-1342"><span class="linenos">1342</span></a>
</span><span id="L-1343"><a href="#L-1343"><span class="linenos">1343</span></a>
-</span><span id="L-1344"><a href="#L-1344"><span class="linenos">1344</span></a>
-</span><span id="L-1345"><a href="#L-1345"><span class="linenos">1345</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-1346"><a href="#L-1346"><span class="linenos">1346</span></a> <span class="n">arg_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><span id="L-1347"><a href="#L-1347"><span class="linenos">1347</span></a>
-</span><span id="L-1348"><a href="#L-1348"><span class="linenos">1348</span></a>
-</span><span id="L-1349"><a href="#L-1349"><span class="linenos">1349</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-1350"><a href="#L-1350"><span class="linenos">1350</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1344"><a href="#L-1344"><span class="linenos">1344</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-1345"><a href="#L-1345"><span class="linenos">1345</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1346"><a href="#L-1346"><span class="linenos">1346</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-1347"><a href="#L-1347"><span class="linenos">1347</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-1348"><a href="#L-1348"><span class="linenos">1348</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-1349"><a href="#L-1349"><span class="linenos">1349</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-1350"><a href="#L-1350"><span class="linenos">1350</span></a> <span class="p">}</span>
</span><span id="L-1351"><a href="#L-1351"><span class="linenos">1351</span></a>
-</span><span id="L-1352"><a href="#L-1352"><span class="linenos">1352</span></a> <span class="nd">@property</span>
-</span><span id="L-1353"><a href="#L-1353"><span class="linenos">1353</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-1354"><a href="#L-1354"><span class="linenos">1354</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-1355"><a href="#L-1355"><span class="linenos">1355</span></a>
-</span><span id="L-1356"><a href="#L-1356"><span class="linenos">1356</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-1357"><a href="#L-1357"><span class="linenos">1357</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-1358"><a href="#L-1358"><span class="linenos">1358</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-1359"><a href="#L-1359"><span class="linenos">1359</span></a>
-</span><span id="L-1360"><a href="#L-1360"><span class="linenos">1360</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-1361"><a href="#L-1361"><span class="linenos">1361</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-1362"><a href="#L-1362"><span class="linenos">1362</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-1363"><a href="#L-1363"><span class="linenos">1363</span></a>
-</span><span id="L-1364"><a href="#L-1364"><span class="linenos">1364</span></a> <span class="nd">@property</span>
-</span><span id="L-1365"><a href="#L-1365"><span class="linenos">1365</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-1366"><a href="#L-1366"><span class="linenos">1366</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-1367"><a href="#L-1367"><span class="linenos">1367</span></a>
+</span><span id="L-1352"><a href="#L-1352"><span class="linenos">1352</span></a>
+</span><span id="L-1353"><a href="#L-1353"><span class="linenos">1353</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-1354"><a href="#L-1354"><span class="linenos">1354</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1355"><a href="#L-1355"><span class="linenos">1355</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-1356"><a href="#L-1356"><span class="linenos">1356</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-1357"><a href="#L-1357"><span class="linenos">1357</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-1358"><a href="#L-1358"><span class="linenos">1358</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-1359"><a href="#L-1359"><span class="linenos">1359</span></a> <span class="p">}</span>
+</span><span id="L-1360"><a href="#L-1360"><span class="linenos">1360</span></a>
+</span><span id="L-1361"><a href="#L-1361"><span class="linenos">1361</span></a>
+</span><span id="L-1362"><a href="#L-1362"><span class="linenos">1362</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-1363"><a href="#L-1363"><span class="linenos">1363</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1364"><a href="#L-1364"><span class="linenos">1364</span></a>
+</span><span id="L-1365"><a href="#L-1365"><span class="linenos">1365</span></a>
+</span><span id="L-1366"><a href="#L-1366"><span class="linenos">1366</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-1367"><a href="#L-1367"><span class="linenos">1367</span></a> <span class="n">arg_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><span id="L-1368"><a href="#L-1368"><span class="linenos">1368</span></a>
-</span><span id="L-1369"><a href="#L-1369"><span class="linenos">1369</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-1370"><a href="#L-1370"><span class="linenos">1370</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1371"><a href="#L-1371"><span class="linenos">1371</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-1372"><a href="#L-1372"><span class="linenos">1372</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-1373"><a href="#L-1373"><span class="linenos">1373</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-1374"><a href="#L-1374"><span class="linenos">1374</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-1375"><a href="#L-1375"><span class="linenos">1375</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-1376"><a href="#L-1376"><span class="linenos">1376</span></a> <span class="s2">&quot;natural&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1377"><a href="#L-1377"><span class="linenos">1377</span></a> <span class="p">}</span>
-</span><span id="L-1378"><a href="#L-1378"><span class="linenos">1378</span></a>
-</span><span id="L-1379"><a href="#L-1379"><span class="linenos">1379</span></a> <span class="nd">@property</span>
-</span><span id="L-1380"><a href="#L-1380"><span class="linenos">1380</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><span id="L-1381"><a href="#L-1381"><span class="linenos">1381</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-1382"><a href="#L-1382"><span class="linenos">1382</span></a>
-</span><span id="L-1383"><a href="#L-1383"><span class="linenos">1383</span></a> <span class="nd">@property</span>
-</span><span id="L-1384"><a href="#L-1384"><span class="linenos">1384</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><span id="L-1385"><a href="#L-1385"><span class="linenos">1385</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-1386"><a href="#L-1386"><span class="linenos">1386</span></a>
-</span><span id="L-1387"><a href="#L-1387"><span class="linenos">1387</span></a> <span class="nd">@property</span>
-</span><span id="L-1388"><a href="#L-1388"><span class="linenos">1388</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><span id="L-1389"><a href="#L-1389"><span class="linenos">1389</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-1390"><a href="#L-1390"><span class="linenos">1390</span></a>
-</span><span id="L-1391"><a href="#L-1391"><span class="linenos">1391</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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><span id="L-1392"><a href="#L-1392"><span class="linenos">1392</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1393"><a href="#L-1393"><span class="linenos">1393</span></a><span class="sd"> Append to or set the ON expressions.</span>
-</span><span id="L-1394"><a href="#L-1394"><span class="linenos">1394</span></a>
-</span><span id="L-1395"><a href="#L-1395"><span class="linenos">1395</span></a><span class="sd"> Example:</span>
-</span><span id="L-1396"><a href="#L-1396"><span class="linenos">1396</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-1397"><a href="#L-1397"><span class="linenos">1397</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-1398"><a href="#L-1398"><span class="linenos">1398</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
-</span><span id="L-1399"><a href="#L-1399"><span class="linenos">1399</span></a>
-</span><span id="L-1400"><a href="#L-1400"><span class="linenos">1400</span></a><span class="sd"> Args:</span>
-</span><span id="L-1401"><a href="#L-1401"><span class="linenos">1401</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-1402"><a href="#L-1402"><span class="linenos">1402</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-1403"><a href="#L-1403"><span class="linenos">1403</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="L-1404"><a href="#L-1404"><span class="linenos">1404</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="L-1405"><a href="#L-1405"><span class="linenos">1405</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-1406"><a href="#L-1406"><span class="linenos">1406</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="L-1407"><a href="#L-1407"><span class="linenos">1407</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1408"><a href="#L-1408"><span class="linenos">1408</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-1409"><a href="#L-1409"><span class="linenos">1409</span></a>
-</span><span id="L-1410"><a href="#L-1410"><span class="linenos">1410</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1411"><a href="#L-1411"><span class="linenos">1411</span></a><span class="sd"> Join: the modified join expression.</span>
-</span><span id="L-1412"><a href="#L-1412"><span class="linenos">1412</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1413"><a href="#L-1413"><span class="linenos">1413</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-1414"><a href="#L-1414"><span class="linenos">1414</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-1415"><a href="#L-1415"><span class="linenos">1415</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1416"><a href="#L-1416"><span class="linenos">1416</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-1417"><a href="#L-1417"><span class="linenos">1417</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-1418"><a href="#L-1418"><span class="linenos">1418</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1419"><a href="#L-1419"><span class="linenos">1419</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-1420"><a href="#L-1420"><span class="linenos">1420</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1421"><a href="#L-1421"><span class="linenos">1421</span></a> <span class="p">)</span>
-</span><span id="L-1422"><a href="#L-1422"><span class="linenos">1422</span></a>
-</span><span id="L-1423"><a href="#L-1423"><span class="linenos">1423</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-1424"><a href="#L-1424"><span class="linenos">1424</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-1369"><a href="#L-1369"><span class="linenos">1369</span></a>
+</span><span id="L-1370"><a href="#L-1370"><span class="linenos">1370</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-1371"><a href="#L-1371"><span class="linenos">1371</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1372"><a href="#L-1372"><span class="linenos">1372</span></a>
+</span><span id="L-1373"><a href="#L-1373"><span class="linenos">1373</span></a> <span class="nd">@property</span>
+</span><span id="L-1374"><a href="#L-1374"><span class="linenos">1374</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-1375"><a href="#L-1375"><span class="linenos">1375</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-1376"><a href="#L-1376"><span class="linenos">1376</span></a>
+</span><span id="L-1377"><a href="#L-1377"><span class="linenos">1377</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-1378"><a href="#L-1378"><span class="linenos">1378</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-1379"><a href="#L-1379"><span class="linenos">1379</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-1380"><a href="#L-1380"><span class="linenos">1380</span></a>
+</span><span id="L-1381"><a href="#L-1381"><span class="linenos">1381</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-1382"><a href="#L-1382"><span class="linenos">1382</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-1383"><a href="#L-1383"><span class="linenos">1383</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-1384"><a href="#L-1384"><span class="linenos">1384</span></a>
+</span><span id="L-1385"><a href="#L-1385"><span class="linenos">1385</span></a> <span class="nd">@property</span>
+</span><span id="L-1386"><a href="#L-1386"><span class="linenos">1386</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-1387"><a href="#L-1387"><span class="linenos">1387</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-1388"><a href="#L-1388"><span class="linenos">1388</span></a>
+</span><span id="L-1389"><a href="#L-1389"><span class="linenos">1389</span></a>
+</span><span id="L-1390"><a href="#L-1390"><span class="linenos">1390</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-1391"><a href="#L-1391"><span class="linenos">1391</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1392"><a href="#L-1392"><span class="linenos">1392</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-1393"><a href="#L-1393"><span class="linenos">1393</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-1394"><a href="#L-1394"><span class="linenos">1394</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-1395"><a href="#L-1395"><span class="linenos">1395</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-1396"><a href="#L-1396"><span class="linenos">1396</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-1397"><a href="#L-1397"><span class="linenos">1397</span></a> <span class="s2">&quot;natural&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1398"><a href="#L-1398"><span class="linenos">1398</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-1399"><a href="#L-1399"><span class="linenos">1399</span></a> <span class="p">}</span>
+</span><span id="L-1400"><a href="#L-1400"><span class="linenos">1400</span></a>
+</span><span id="L-1401"><a href="#L-1401"><span class="linenos">1401</span></a> <span class="nd">@property</span>
+</span><span id="L-1402"><a href="#L-1402"><span class="linenos">1402</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><span id="L-1403"><a href="#L-1403"><span class="linenos">1403</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-1404"><a href="#L-1404"><span class="linenos">1404</span></a>
+</span><span id="L-1405"><a href="#L-1405"><span class="linenos">1405</span></a> <span class="nd">@property</span>
+</span><span id="L-1406"><a href="#L-1406"><span class="linenos">1406</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><span id="L-1407"><a href="#L-1407"><span class="linenos">1407</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-1408"><a href="#L-1408"><span class="linenos">1408</span></a>
+</span><span id="L-1409"><a href="#L-1409"><span class="linenos">1409</span></a> <span class="nd">@property</span>
+</span><span id="L-1410"><a href="#L-1410"><span class="linenos">1410</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><span id="L-1411"><a href="#L-1411"><span class="linenos">1411</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-1412"><a href="#L-1412"><span class="linenos">1412</span></a>
+</span><span id="L-1413"><a href="#L-1413"><span class="linenos">1413</span></a> <span class="nd">@property</span>
+</span><span id="L-1414"><a href="#L-1414"><span class="linenos">1414</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><span id="L-1415"><a href="#L-1415"><span class="linenos">1415</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-1416"><a href="#L-1416"><span class="linenos">1416</span></a>
+</span><span id="L-1417"><a href="#L-1417"><span class="linenos">1417</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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><span id="L-1418"><a href="#L-1418"><span class="linenos">1418</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1419"><a href="#L-1419"><span class="linenos">1419</span></a><span class="sd"> Append to or set the ON expressions.</span>
+</span><span id="L-1420"><a href="#L-1420"><span class="linenos">1420</span></a>
+</span><span id="L-1421"><a href="#L-1421"><span class="linenos">1421</span></a><span class="sd"> Example:</span>
+</span><span id="L-1422"><a href="#L-1422"><span class="linenos">1422</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-1423"><a href="#L-1423"><span class="linenos">1423</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-1424"><a href="#L-1424"><span class="linenos">1424</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
</span><span id="L-1425"><a href="#L-1425"><span class="linenos">1425</span></a>
-</span><span id="L-1426"><a href="#L-1426"><span class="linenos">1426</span></a> <span class="k">return</span> <span class="n">join</span>
-</span><span id="L-1427"><a href="#L-1427"><span class="linenos">1427</span></a>
-</span><span id="L-1428"><a href="#L-1428"><span class="linenos">1428</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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><span id="L-1429"><a href="#L-1429"><span class="linenos">1429</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1430"><a href="#L-1430"><span class="linenos">1430</span></a><span class="sd"> Append to or set the USING expressions.</span>
-</span><span id="L-1431"><a href="#L-1431"><span class="linenos">1431</span></a>
-</span><span id="L-1432"><a href="#L-1432"><span class="linenos">1432</span></a><span class="sd"> Example:</span>
-</span><span id="L-1433"><a href="#L-1433"><span class="linenos">1433</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-1434"><a href="#L-1434"><span class="linenos">1434</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-1435"><a href="#L-1435"><span class="linenos">1435</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
-</span><span id="L-1436"><a href="#L-1436"><span class="linenos">1436</span></a>
-</span><span id="L-1437"><a href="#L-1437"><span class="linenos">1437</span></a><span class="sd"> Args:</span>
-</span><span id="L-1438"><a href="#L-1438"><span class="linenos">1438</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-1439"><a href="#L-1439"><span class="linenos">1439</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-1440"><a href="#L-1440"><span class="linenos">1440</span></a><span class="sd"> append (bool): if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
-</span><span id="L-1441"><a href="#L-1441"><span class="linenos">1441</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-1442"><a href="#L-1442"><span class="linenos">1442</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="L-1443"><a href="#L-1443"><span class="linenos">1443</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1444"><a href="#L-1444"><span class="linenos">1444</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-1445"><a href="#L-1445"><span class="linenos">1445</span></a>
-</span><span id="L-1446"><a href="#L-1446"><span class="linenos">1446</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1447"><a href="#L-1447"><span class="linenos">1447</span></a><span class="sd"> Join: the modified join expression.</span>
-</span><span id="L-1448"><a href="#L-1448"><span class="linenos">1448</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1449"><a href="#L-1449"><span class="linenos">1449</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-1450"><a href="#L-1450"><span class="linenos">1450</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-1451"><a href="#L-1451"><span class="linenos">1451</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1452"><a href="#L-1452"><span class="linenos">1452</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-1453"><a href="#L-1453"><span class="linenos">1453</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-1454"><a href="#L-1454"><span class="linenos">1454</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1455"><a href="#L-1455"><span class="linenos">1455</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-1456"><a href="#L-1456"><span class="linenos">1456</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1457"><a href="#L-1457"><span class="linenos">1457</span></a> <span class="p">)</span>
-</span><span id="L-1458"><a href="#L-1458"><span class="linenos">1458</span></a>
-</span><span id="L-1459"><a href="#L-1459"><span class="linenos">1459</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-1460"><a href="#L-1460"><span class="linenos">1460</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-1461"><a href="#L-1461"><span class="linenos">1461</span></a>
-</span><span id="L-1462"><a href="#L-1462"><span class="linenos">1462</span></a> <span class="k">return</span> <span class="n">join</span>
-</span><span id="L-1463"><a href="#L-1463"><span class="linenos">1463</span></a>
-</span><span id="L-1464"><a href="#L-1464"><span class="linenos">1464</span></a>
-</span><span id="L-1465"><a href="#L-1465"><span class="linenos">1465</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-1466"><a href="#L-1466"><span class="linenos">1466</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;view&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;outer&quot;</span><span class="p">:</span> <span class="kc">False</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-1467"><a href="#L-1467"><span class="linenos">1467</span></a>
-</span><span id="L-1468"><a href="#L-1468"><span class="linenos">1468</span></a>
-</span><span id="L-1469"><a href="#L-1469"><span class="linenos">1469</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-1470"><a href="#L-1470"><span class="linenos">1470</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1471"><a href="#L-1471"><span class="linenos">1471</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-1472"><a href="#L-1472"><span class="linenos">1472</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-1473"><a href="#L-1473"><span class="linenos">1473</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-1474"><a href="#L-1474"><span class="linenos">1474</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-1475"><a href="#L-1475"><span class="linenos">1475</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-1476"><a href="#L-1476"><span class="linenos">1476</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-1477"><a href="#L-1477"><span class="linenos">1477</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-1478"><a href="#L-1478"><span class="linenos">1478</span></a> <span class="p">}</span>
-</span><span id="L-1479"><a href="#L-1479"><span class="linenos">1479</span></a>
-</span><span id="L-1480"><a href="#L-1480"><span class="linenos">1480</span></a>
-</span><span id="L-1481"><a href="#L-1481"><span class="linenos">1481</span></a><span class="c1"># Clickhouse FROM FINAL modifier</span>
-</span><span id="L-1482"><a href="#L-1482"><span class="linenos">1482</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/from/#final-modifier</span>
-</span><span id="L-1483"><a href="#L-1483"><span class="linenos">1483</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-1484"><a href="#L-1484"><span class="linenos">1484</span></a> <span class="k">pass</span>
-</span><span id="L-1485"><a href="#L-1485"><span class="linenos">1485</span></a>
-</span><span id="L-1486"><a href="#L-1486"><span class="linenos">1486</span></a>
-</span><span id="L-1487"><a href="#L-1487"><span class="linenos">1487</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-1488"><a href="#L-1488"><span class="linenos">1488</span></a> <span class="n">arg_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><span id="L-1426"><a href="#L-1426"><span class="linenos">1426</span></a><span class="sd"> Args:</span>
+</span><span id="L-1427"><a href="#L-1427"><span class="linenos">1427</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-1428"><a href="#L-1428"><span class="linenos">1428</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-1429"><a href="#L-1429"><span class="linenos">1429</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="L-1430"><a href="#L-1430"><span class="linenos">1430</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="L-1431"><a href="#L-1431"><span class="linenos">1431</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-1432"><a href="#L-1432"><span class="linenos">1432</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="L-1433"><a href="#L-1433"><span class="linenos">1433</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1434"><a href="#L-1434"><span class="linenos">1434</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-1435"><a href="#L-1435"><span class="linenos">1435</span></a>
+</span><span id="L-1436"><a href="#L-1436"><span class="linenos">1436</span></a><span class="sd"> Returns:</span>
+</span><span id="L-1437"><a href="#L-1437"><span class="linenos">1437</span></a><span class="sd"> Join: the modified join expression.</span>
+</span><span id="L-1438"><a href="#L-1438"><span class="linenos">1438</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1439"><a href="#L-1439"><span class="linenos">1439</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-1440"><a href="#L-1440"><span class="linenos">1440</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-1441"><a href="#L-1441"><span class="linenos">1441</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1442"><a href="#L-1442"><span class="linenos">1442</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-1443"><a href="#L-1443"><span class="linenos">1443</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-1444"><a href="#L-1444"><span class="linenos">1444</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1445"><a href="#L-1445"><span class="linenos">1445</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-1446"><a href="#L-1446"><span class="linenos">1446</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1447"><a href="#L-1447"><span class="linenos">1447</span></a> <span class="p">)</span>
+</span><span id="L-1448"><a href="#L-1448"><span class="linenos">1448</span></a>
+</span><span id="L-1449"><a href="#L-1449"><span class="linenos">1449</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-1450"><a href="#L-1450"><span class="linenos">1450</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-1451"><a href="#L-1451"><span class="linenos">1451</span></a>
+</span><span id="L-1452"><a href="#L-1452"><span class="linenos">1452</span></a> <span class="k">return</span> <span class="n">join</span>
+</span><span id="L-1453"><a href="#L-1453"><span class="linenos">1453</span></a>
+</span><span id="L-1454"><a href="#L-1454"><span class="linenos">1454</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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><span id="L-1455"><a href="#L-1455"><span class="linenos">1455</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1456"><a href="#L-1456"><span class="linenos">1456</span></a><span class="sd"> Append to or set the USING expressions.</span>
+</span><span id="L-1457"><a href="#L-1457"><span class="linenos">1457</span></a>
+</span><span id="L-1458"><a href="#L-1458"><span class="linenos">1458</span></a><span class="sd"> Example:</span>
+</span><span id="L-1459"><a href="#L-1459"><span class="linenos">1459</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-1460"><a href="#L-1460"><span class="linenos">1460</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-1461"><a href="#L-1461"><span class="linenos">1461</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
+</span><span id="L-1462"><a href="#L-1462"><span class="linenos">1462</span></a>
+</span><span id="L-1463"><a href="#L-1463"><span class="linenos">1463</span></a><span class="sd"> Args:</span>
+</span><span id="L-1464"><a href="#L-1464"><span class="linenos">1464</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-1465"><a href="#L-1465"><span class="linenos">1465</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-1466"><a href="#L-1466"><span class="linenos">1466</span></a><span class="sd"> append (bool): if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
+</span><span id="L-1467"><a href="#L-1467"><span class="linenos">1467</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-1468"><a href="#L-1468"><span class="linenos">1468</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="L-1469"><a href="#L-1469"><span class="linenos">1469</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1470"><a href="#L-1470"><span class="linenos">1470</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-1471"><a href="#L-1471"><span class="linenos">1471</span></a>
+</span><span id="L-1472"><a href="#L-1472"><span class="linenos">1472</span></a><span class="sd"> Returns:</span>
+</span><span id="L-1473"><a href="#L-1473"><span class="linenos">1473</span></a><span class="sd"> Join: the modified join expression.</span>
+</span><span id="L-1474"><a href="#L-1474"><span class="linenos">1474</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1475"><a href="#L-1475"><span class="linenos">1475</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-1476"><a href="#L-1476"><span class="linenos">1476</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-1477"><a href="#L-1477"><span class="linenos">1477</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1478"><a href="#L-1478"><span class="linenos">1478</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-1479"><a href="#L-1479"><span class="linenos">1479</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-1480"><a href="#L-1480"><span class="linenos">1480</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1481"><a href="#L-1481"><span class="linenos">1481</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-1482"><a href="#L-1482"><span class="linenos">1482</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1483"><a href="#L-1483"><span class="linenos">1483</span></a> <span class="p">)</span>
+</span><span id="L-1484"><a href="#L-1484"><span class="linenos">1484</span></a>
+</span><span id="L-1485"><a href="#L-1485"><span class="linenos">1485</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-1486"><a href="#L-1486"><span class="linenos">1486</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-1487"><a href="#L-1487"><span class="linenos">1487</span></a>
+</span><span id="L-1488"><a href="#L-1488"><span class="linenos">1488</span></a> <span class="k">return</span> <span class="n">join</span>
</span><span id="L-1489"><a href="#L-1489"><span class="linenos">1489</span></a>
</span><span id="L-1490"><a href="#L-1490"><span class="linenos">1490</span></a>
-</span><span id="L-1491"><a href="#L-1491"><span class="linenos">1491</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-1492"><a href="#L-1492"><span class="linenos">1492</span></a> <span class="n">arg_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">True</span><span class="p">}</span>
+</span><span id="L-1491"><a href="#L-1491"><span class="linenos">1491</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-1492"><a href="#L-1492"><span class="linenos">1492</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;view&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;outer&quot;</span><span class="p">:</span> <span class="kc">False</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-1493"><a href="#L-1493"><span class="linenos">1493</span></a>
</span><span id="L-1494"><a href="#L-1494"><span class="linenos">1494</span></a>
-</span><span id="L-1495"><a href="#L-1495"><span class="linenos">1495</span></a><span class="c1"># hive specific sorts</span>
-</span><span id="L-1496"><a href="#L-1496"><span class="linenos">1496</span></a><span class="c1"># https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy</span>
-</span><span id="L-1497"><a href="#L-1497"><span class="linenos">1497</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-1498"><a href="#L-1498"><span class="linenos">1498</span></a> <span class="k">pass</span>
-</span><span id="L-1499"><a href="#L-1499"><span class="linenos">1499</span></a>
-</span><span id="L-1500"><a href="#L-1500"><span class="linenos">1500</span></a>
-</span><span id="L-1501"><a href="#L-1501"><span class="linenos">1501</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-1502"><a href="#L-1502"><span class="linenos">1502</span></a> <span class="k">pass</span>
-</span><span id="L-1503"><a href="#L-1503"><span class="linenos">1503</span></a>
-</span><span id="L-1504"><a href="#L-1504"><span class="linenos">1504</span></a>
-</span><span id="L-1505"><a href="#L-1505"><span class="linenos">1505</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-1506"><a href="#L-1506"><span class="linenos">1506</span></a> <span class="k">pass</span>
+</span><span id="L-1495"><a href="#L-1495"><span class="linenos">1495</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-1496"><a href="#L-1496"><span class="linenos">1496</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1497"><a href="#L-1497"><span class="linenos">1497</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-1498"><a href="#L-1498"><span class="linenos">1498</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-1499"><a href="#L-1499"><span class="linenos">1499</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-1500"><a href="#L-1500"><span class="linenos">1500</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-1501"><a href="#L-1501"><span class="linenos">1501</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-1502"><a href="#L-1502"><span class="linenos">1502</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-1503"><a href="#L-1503"><span class="linenos">1503</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-1504"><a href="#L-1504"><span class="linenos">1504</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-1505"><a href="#L-1505"><span class="linenos">1505</span></a> <span class="p">}</span>
+</span><span id="L-1506"><a href="#L-1506"><span class="linenos">1506</span></a>
</span><span id="L-1507"><a href="#L-1507"><span class="linenos">1507</span></a>
-</span><span id="L-1508"><a href="#L-1508"><span class="linenos">1508</span></a>
-</span><span id="L-1509"><a href="#L-1509"><span class="linenos">1509</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-1510"><a href="#L-1510"><span class="linenos">1510</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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">True</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><span id="L-1511"><a href="#L-1511"><span class="linenos">1511</span></a>
+</span><span id="L-1508"><a href="#L-1508"><span class="linenos">1508</span></a><span class="c1"># Clickhouse FROM FINAL modifier</span>
+</span><span id="L-1509"><a href="#L-1509"><span class="linenos">1509</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/from/#final-modifier</span>
+</span><span id="L-1510"><a href="#L-1510"><span class="linenos">1510</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-1511"><a href="#L-1511"><span class="linenos">1511</span></a> <span class="k">pass</span>
</span><span id="L-1512"><a href="#L-1512"><span class="linenos">1512</span></a>
-</span><span id="L-1513"><a href="#L-1513"><span class="linenos">1513</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-1514"><a href="#L-1514"><span class="linenos">1514</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1515"><a href="#L-1515"><span class="linenos">1515</span></a>
+</span><span id="L-1513"><a href="#L-1513"><span class="linenos">1513</span></a>
+</span><span id="L-1514"><a href="#L-1514"><span class="linenos">1514</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-1515"><a href="#L-1515"><span class="linenos">1515</span></a> <span class="n">arg_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><span id="L-1516"><a href="#L-1516"><span class="linenos">1516</span></a>
-</span><span id="L-1517"><a href="#L-1517"><span class="linenos">1517</span></a><span class="k">class</span> <span class="nc">AfterJournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-1518"><a href="#L-1518"><span class="linenos">1518</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;dual&quot;</span><span class="p">:</span> <span class="kc">False</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><span id="L-1519"><a href="#L-1519"><span class="linenos">1519</span></a>
+</span><span id="L-1517"><a href="#L-1517"><span class="linenos">1517</span></a>
+</span><span id="L-1518"><a href="#L-1518"><span class="linenos">1518</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-1519"><a href="#L-1519"><span class="linenos">1519</span></a> <span class="n">arg_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">True</span><span class="p">}</span>
</span><span id="L-1520"><a href="#L-1520"><span class="linenos">1520</span></a>
-</span><span id="L-1521"><a href="#L-1521"><span class="linenos">1521</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-1522"><a href="#L-1522"><span class="linenos">1522</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1523"><a href="#L-1523"><span class="linenos">1523</span></a>
-</span><span id="L-1524"><a href="#L-1524"><span class="linenos">1524</span></a>
-</span><span id="L-1525"><a href="#L-1525"><span class="linenos">1525</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-1526"><a href="#L-1526"><span class="linenos">1526</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1521"><a href="#L-1521"><span class="linenos">1521</span></a>
+</span><span id="L-1522"><a href="#L-1522"><span class="linenos">1522</span></a><span class="c1"># hive specific sorts</span>
+</span><span id="L-1523"><a href="#L-1523"><span class="linenos">1523</span></a><span class="c1"># https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy</span>
+</span><span id="L-1524"><a href="#L-1524"><span class="linenos">1524</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-1525"><a href="#L-1525"><span class="linenos">1525</span></a> <span class="k">pass</span>
+</span><span id="L-1526"><a href="#L-1526"><span class="linenos">1526</span></a>
</span><span id="L-1527"><a href="#L-1527"><span class="linenos">1527</span></a>
-</span><span id="L-1528"><a href="#L-1528"><span class="linenos">1528</span></a>
-</span><span id="L-1529"><a href="#L-1529"><span class="linenos">1529</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-1530"><a href="#L-1530"><span class="linenos">1530</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;autotemp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;always&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">True</span><span class="p">,</span> <span class="s2">&quot;manual&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;never&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-1528"><a href="#L-1528"><span class="linenos">1528</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-1529"><a href="#L-1529"><span class="linenos">1529</span></a> <span class="k">pass</span>
+</span><span id="L-1530"><a href="#L-1530"><span class="linenos">1530</span></a>
</span><span id="L-1531"><a href="#L-1531"><span class="linenos">1531</span></a>
-</span><span id="L-1532"><a href="#L-1532"><span class="linenos">1532</span></a>
-</span><span id="L-1533"><a href="#L-1533"><span class="linenos">1533</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-1534"><a href="#L-1534"><span class="linenos">1534</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1532"><a href="#L-1532"><span class="linenos">1532</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-1533"><a href="#L-1533"><span class="linenos">1533</span></a> <span class="k">pass</span>
+</span><span id="L-1534"><a href="#L-1534"><span class="linenos">1534</span></a>
</span><span id="L-1535"><a href="#L-1535"><span class="linenos">1535</span></a>
-</span><span id="L-1536"><a href="#L-1536"><span class="linenos">1536</span></a>
-</span><span id="L-1537"><a href="#L-1537"><span class="linenos">1537</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-1538"><a href="#L-1538"><span class="linenos">1538</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-1536"><a href="#L-1536"><span class="linenos">1536</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-1537"><a href="#L-1537"><span class="linenos">1537</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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">True</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><span id="L-1538"><a href="#L-1538"><span class="linenos">1538</span></a>
</span><span id="L-1539"><a href="#L-1539"><span class="linenos">1539</span></a>
-</span><span id="L-1540"><a href="#L-1540"><span class="linenos">1540</span></a>
-</span><span id="L-1541"><a href="#L-1541"><span class="linenos">1541</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-1542"><a href="#L-1542"><span class="linenos">1542</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1540"><a href="#L-1540"><span class="linenos">1540</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-1541"><a href="#L-1541"><span class="linenos">1541</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1542"><a href="#L-1542"><span class="linenos">1542</span></a>
</span><span id="L-1543"><a href="#L-1543"><span class="linenos">1543</span></a>
-</span><span id="L-1544"><a href="#L-1544"><span class="linenos">1544</span></a>
-</span><span id="L-1545"><a href="#L-1545"><span class="linenos">1545</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-1546"><a href="#L-1546"><span class="linenos">1546</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;min&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-1544"><a href="#L-1544"><span class="linenos">1544</span></a><span class="k">class</span> <span class="nc">AfterJournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-1545"><a href="#L-1545"><span class="linenos">1545</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;dual&quot;</span><span class="p">:</span> <span class="kc">False</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><span id="L-1546"><a href="#L-1546"><span class="linenos">1546</span></a>
</span><span id="L-1547"><a href="#L-1547"><span class="linenos">1547</span></a>
-</span><span id="L-1548"><a href="#L-1548"><span class="linenos">1548</span></a>
-</span><span id="L-1549"><a href="#L-1549"><span class="linenos">1549</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-1550"><a href="#L-1550"><span class="linenos">1550</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1548"><a href="#L-1548"><span class="linenos">1548</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-1549"><a href="#L-1549"><span class="linenos">1549</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1550"><a href="#L-1550"><span class="linenos">1550</span></a>
</span><span id="L-1551"><a href="#L-1551"><span class="linenos">1551</span></a>
-</span><span id="L-1552"><a href="#L-1552"><span class="linenos">1552</span></a>
-</span><span id="L-1553"><a href="#L-1553"><span class="linenos">1553</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-1554"><a href="#L-1554"><span class="linenos">1554</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1552"><a href="#L-1552"><span class="linenos">1552</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-1553"><a href="#L-1553"><span class="linenos">1553</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1554"><a href="#L-1554"><span class="linenos">1554</span></a>
</span><span id="L-1555"><a href="#L-1555"><span class="linenos">1555</span></a>
-</span><span id="L-1556"><a href="#L-1556"><span class="linenos">1556</span></a>
-</span><span id="L-1557"><a href="#L-1557"><span class="linenos">1557</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-1558"><a href="#L-1558"><span class="linenos">1558</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1556"><a href="#L-1556"><span class="linenos">1556</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-1557"><a href="#L-1557"><span class="linenos">1557</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;autotemp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;always&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">True</span><span class="p">,</span> <span class="s2">&quot;manual&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;never&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-1558"><a href="#L-1558"><span class="linenos">1558</span></a>
</span><span id="L-1559"><a href="#L-1559"><span class="linenos">1559</span></a>
-</span><span id="L-1560"><a href="#L-1560"><span class="linenos">1560</span></a>
-</span><span id="L-1561"><a href="#L-1561"><span class="linenos">1561</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-1562"><a href="#L-1562"><span class="linenos">1562</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1560"><a href="#L-1560"><span class="linenos">1560</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-1561"><a href="#L-1561"><span class="linenos">1561</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1562"><a href="#L-1562"><span class="linenos">1562</span></a>
</span><span id="L-1563"><a href="#L-1563"><span class="linenos">1563</span></a>
-</span><span id="L-1564"><a href="#L-1564"><span class="linenos">1564</span></a>
-</span><span id="L-1565"><a href="#L-1565"><span class="linenos">1565</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-1566"><a href="#L-1566"><span class="linenos">1566</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1564"><a href="#L-1564"><span class="linenos">1564</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-1565"><a href="#L-1565"><span class="linenos">1565</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-1566"><a href="#L-1566"><span class="linenos">1566</span></a>
</span><span id="L-1567"><a href="#L-1567"><span class="linenos">1567</span></a>
-</span><span id="L-1568"><a href="#L-1568"><span class="linenos">1568</span></a>
-</span><span id="L-1569"><a href="#L-1569"><span class="linenos">1569</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-1570"><a href="#L-1570"><span class="linenos">1570</span></a> <span class="n">arg_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-1568"><a href="#L-1568"><span class="linenos">1568</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-1569"><a href="#L-1569"><span class="linenos">1569</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1570"><a href="#L-1570"><span class="linenos">1570</span></a>
</span><span id="L-1571"><a href="#L-1571"><span class="linenos">1571</span></a>
-</span><span id="L-1572"><a href="#L-1572"><span class="linenos">1572</span></a>
-</span><span id="L-1573"><a href="#L-1573"><span class="linenos">1573</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-1574"><a href="#L-1574"><span class="linenos">1574</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-1572"><a href="#L-1572"><span class="linenos">1572</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-1573"><a href="#L-1573"><span class="linenos">1573</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;min&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-1574"><a href="#L-1574"><span class="linenos">1574</span></a>
</span><span id="L-1575"><a href="#L-1575"><span class="linenos">1575</span></a>
-</span><span id="L-1576"><a href="#L-1576"><span class="linenos">1576</span></a>
-</span><span id="L-1577"><a href="#L-1577"><span class="linenos">1577</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-1578"><a href="#L-1578"><span class="linenos">1578</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1576"><a href="#L-1576"><span class="linenos">1576</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-1577"><a href="#L-1577"><span class="linenos">1577</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1578"><a href="#L-1578"><span class="linenos">1578</span></a>
</span><span id="L-1579"><a href="#L-1579"><span class="linenos">1579</span></a>
-</span><span id="L-1580"><a href="#L-1580"><span class="linenos">1580</span></a>
-</span><span id="L-1581"><a href="#L-1581"><span class="linenos">1581</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-1582"><a href="#L-1582"><span class="linenos">1582</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1580"><a href="#L-1580"><span class="linenos">1580</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-1581"><a href="#L-1581"><span class="linenos">1581</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1582"><a href="#L-1582"><span class="linenos">1582</span></a>
</span><span id="L-1583"><a href="#L-1583"><span class="linenos">1583</span></a>
-</span><span id="L-1584"><a href="#L-1584"><span class="linenos">1584</span></a>
-</span><span id="L-1585"><a href="#L-1585"><span class="linenos">1585</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-1586"><a href="#L-1586"><span class="linenos">1586</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1587"><a href="#L-1587"><span class="linenos">1587</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-1588"><a href="#L-1588"><span class="linenos">1588</span></a> <span class="s2">&quot;concurrent&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-1589"><a href="#L-1589"><span class="linenos">1589</span></a> <span class="s2">&quot;for_all&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-1590"><a href="#L-1590"><span class="linenos">1590</span></a> <span class="s2">&quot;for_insert&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-1591"><a href="#L-1591"><span class="linenos">1591</span></a> <span class="s2">&quot;for_none&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-1592"><a href="#L-1592"><span class="linenos">1592</span></a> <span class="p">}</span>
-</span><span id="L-1593"><a href="#L-1593"><span class="linenos">1593</span></a>
+</span><span id="L-1584"><a href="#L-1584"><span class="linenos">1584</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-1585"><a href="#L-1585"><span class="linenos">1585</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1586"><a href="#L-1586"><span class="linenos">1586</span></a>
+</span><span id="L-1587"><a href="#L-1587"><span class="linenos">1587</span></a>
+</span><span id="L-1588"><a href="#L-1588"><span class="linenos">1588</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-1589"><a href="#L-1589"><span class="linenos">1589</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1590"><a href="#L-1590"><span class="linenos">1590</span></a>
+</span><span id="L-1591"><a href="#L-1591"><span class="linenos">1591</span></a>
+</span><span id="L-1592"><a href="#L-1592"><span class="linenos">1592</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-1593"><a href="#L-1593"><span class="linenos">1593</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1594"><a href="#L-1594"><span class="linenos">1594</span></a>
-</span><span id="L-1595"><a href="#L-1595"><span class="linenos">1595</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-1596"><a href="#L-1596"><span class="linenos">1596</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;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-1597"><a href="#L-1597"><span class="linenos">1597</span></a>
+</span><span id="L-1595"><a href="#L-1595"><span class="linenos">1595</span></a>
+</span><span id="L-1596"><a href="#L-1596"><span class="linenos">1596</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-1597"><a href="#L-1597"><span class="linenos">1597</span></a> <span class="n">arg_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-1598"><a href="#L-1598"><span class="linenos">1598</span></a>
-</span><span id="L-1599"><a href="#L-1599"><span class="linenos">1599</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-1600"><a href="#L-1600"><span class="linenos">1600</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1601"><a href="#L-1601"><span class="linenos">1601</span></a>
+</span><span id="L-1599"><a href="#L-1599"><span class="linenos">1599</span></a>
+</span><span id="L-1600"><a href="#L-1600"><span class="linenos">1600</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-1601"><a href="#L-1601"><span class="linenos">1601</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-1602"><a href="#L-1602"><span class="linenos">1602</span></a>
-</span><span id="L-1603"><a href="#L-1603"><span class="linenos">1603</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-1604"><a href="#L-1604"><span class="linenos">1604</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1605"><a href="#L-1605"><span class="linenos">1605</span></a>
+</span><span id="L-1603"><a href="#L-1603"><span class="linenos">1603</span></a>
+</span><span id="L-1604"><a href="#L-1604"><span class="linenos">1604</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-1605"><a href="#L-1605"><span class="linenos">1605</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1606"><a href="#L-1606"><span class="linenos">1606</span></a>
-</span><span id="L-1607"><a href="#L-1607"><span class="linenos">1607</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-1608"><a href="#L-1608"><span class="linenos">1608</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1609"><a href="#L-1609"><span class="linenos">1609</span></a>
+</span><span id="L-1607"><a href="#L-1607"><span class="linenos">1607</span></a>
+</span><span id="L-1608"><a href="#L-1608"><span class="linenos">1608</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-1609"><a href="#L-1609"><span class="linenos">1609</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1610"><a href="#L-1610"><span class="linenos">1610</span></a>
-</span><span id="L-1611"><a href="#L-1611"><span class="linenos">1611</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-1612"><a href="#L-1612"><span class="linenos">1612</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1613"><a href="#L-1613"><span class="linenos">1613</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-1614"><a href="#L-1614"><span class="linenos">1614</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-1615"><a href="#L-1615"><span class="linenos">1615</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-1616"><a href="#L-1616"><span class="linenos">1616</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-1617"><a href="#L-1617"><span class="linenos">1617</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-1618"><a href="#L-1618"><span class="linenos">1618</span></a> <span class="p">}</span>
-</span><span id="L-1619"><a href="#L-1619"><span class="linenos">1619</span></a>
-</span><span id="L-1620"><a href="#L-1620"><span class="linenos">1620</span></a>
-</span><span id="L-1621"><a href="#L-1621"><span class="linenos">1621</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-1622"><a href="#L-1622"><span class="linenos">1622</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-1623"><a href="#L-1623"><span class="linenos">1623</span></a>
+</span><span id="L-1611"><a href="#L-1611"><span class="linenos">1611</span></a>
+</span><span id="L-1612"><a href="#L-1612"><span class="linenos">1612</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-1613"><a href="#L-1613"><span class="linenos">1613</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-1614"><a href="#L-1614"><span class="linenos">1614</span></a>
+</span><span id="L-1615"><a href="#L-1615"><span class="linenos">1615</span></a>
+</span><span id="L-1616"><a href="#L-1616"><span class="linenos">1616</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-1617"><a href="#L-1617"><span class="linenos">1617</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1618"><a href="#L-1618"><span class="linenos">1618</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-1619"><a href="#L-1619"><span class="linenos">1619</span></a> <span class="s2">&quot;concurrent&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-1620"><a href="#L-1620"><span class="linenos">1620</span></a> <span class="s2">&quot;for_all&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-1621"><a href="#L-1621"><span class="linenos">1621</span></a> <span class="s2">&quot;for_insert&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-1622"><a href="#L-1622"><span class="linenos">1622</span></a> <span class="s2">&quot;for_none&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-1623"><a href="#L-1623"><span class="linenos">1623</span></a> <span class="p">}</span>
</span><span id="L-1624"><a href="#L-1624"><span class="linenos">1624</span></a>
-</span><span id="L-1625"><a href="#L-1625"><span class="linenos">1625</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-1626"><a href="#L-1626"><span class="linenos">1626</span></a> <span class="n">arg_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-1627"><a href="#L-1627"><span class="linenos">1627</span></a>
+</span><span id="L-1625"><a href="#L-1625"><span class="linenos">1625</span></a>
+</span><span id="L-1626"><a href="#L-1626"><span class="linenos">1626</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-1627"><a href="#L-1627"><span class="linenos">1627</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;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1628"><a href="#L-1628"><span class="linenos">1628</span></a>
-</span><span id="L-1629"><a href="#L-1629"><span class="linenos">1629</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-1630"><a href="#L-1630"><span class="linenos">1630</span></a> <span class="n">arg_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-1631"><a href="#L-1631"><span class="linenos">1631</span></a>
+</span><span id="L-1629"><a href="#L-1629"><span class="linenos">1629</span></a>
+</span><span id="L-1630"><a href="#L-1630"><span class="linenos">1630</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-1631"><a href="#L-1631"><span class="linenos">1631</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1632"><a href="#L-1632"><span class="linenos">1632</span></a>
-</span><span id="L-1633"><a href="#L-1633"><span class="linenos">1633</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-1634"><a href="#L-1634"><span class="linenos">1634</span></a> <span class="n">arg_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-1635"><a href="#L-1635"><span class="linenos">1635</span></a>
+</span><span id="L-1633"><a href="#L-1633"><span class="linenos">1633</span></a>
+</span><span id="L-1634"><a href="#L-1634"><span class="linenos">1634</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-1635"><a href="#L-1635"><span class="linenos">1635</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1636"><a href="#L-1636"><span class="linenos">1636</span></a>
-</span><span id="L-1637"><a href="#L-1637"><span class="linenos">1637</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-1638"><a href="#L-1638"><span class="linenos">1638</span></a> <span class="n">arg_type</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-1639"><a href="#L-1639"><span class="linenos">1639</span></a>
+</span><span id="L-1637"><a href="#L-1637"><span class="linenos">1637</span></a>
+</span><span id="L-1638"><a href="#L-1638"><span class="linenos">1638</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-1639"><a href="#L-1639"><span class="linenos">1639</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1640"><a href="#L-1640"><span class="linenos">1640</span></a>
-</span><span id="L-1641"><a href="#L-1641"><span class="linenos">1641</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-1642"><a href="#L-1642"><span class="linenos">1642</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1643"><a href="#L-1643"><span class="linenos">1643</span></a>
-</span><span id="L-1644"><a href="#L-1644"><span class="linenos">1644</span></a>
-</span><span id="L-1645"><a href="#L-1645"><span class="linenos">1645</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-1646"><a href="#L-1646"><span class="linenos">1646</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1647"><a href="#L-1647"><span class="linenos">1647</span></a>
-</span><span id="L-1648"><a href="#L-1648"><span class="linenos">1648</span></a>
-</span><span id="L-1649"><a href="#L-1649"><span class="linenos">1649</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-1650"><a href="#L-1650"><span class="linenos">1650</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
-</span><span id="L-1651"><a href="#L-1651"><span class="linenos">1651</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1652"><a href="#L-1652"><span class="linenos">1652</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-1653"><a href="#L-1653"><span class="linenos">1653</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-1654"><a href="#L-1654"><span class="linenos">1654</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-1655"><a href="#L-1655"><span class="linenos">1655</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-1656"><a href="#L-1656"><span class="linenos">1656</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-1657"><a href="#L-1657"><span class="linenos">1657</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-1658"><a href="#L-1658"><span class="linenos">1658</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-1659"><a href="#L-1659"><span class="linenos">1659</span></a> <span class="p">}</span>
-</span><span id="L-1660"><a href="#L-1660"><span class="linenos">1660</span></a>
-</span><span id="L-1661"><a href="#L-1661"><span class="linenos">1661</span></a>
-</span><span id="L-1662"><a href="#L-1662"><span class="linenos">1662</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-1663"><a href="#L-1663"><span class="linenos">1663</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1664"><a href="#L-1664"><span class="linenos">1664</span></a>
-</span><span id="L-1665"><a href="#L-1665"><span class="linenos">1665</span></a>
-</span><span id="L-1666"><a href="#L-1666"><span class="linenos">1666</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-1667"><a href="#L-1667"><span class="linenos">1667</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1668"><a href="#L-1668"><span class="linenos">1668</span></a>
-</span><span id="L-1669"><a href="#L-1669"><span class="linenos">1669</span></a>
-</span><span id="L-1670"><a href="#L-1670"><span class="linenos">1670</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-1671"><a href="#L-1671"><span class="linenos">1671</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-1672"><a href="#L-1672"><span class="linenos">1672</span></a>
-</span><span id="L-1673"><a href="#L-1673"><span class="linenos">1673</span></a>
-</span><span id="L-1674"><a href="#L-1674"><span class="linenos">1674</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-1675"><a href="#L-1675"><span class="linenos">1675</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-1676"><a href="#L-1676"><span class="linenos">1676</span></a>
-</span><span id="L-1677"><a href="#L-1677"><span class="linenos">1677</span></a>
-</span><span id="L-1678"><a href="#L-1678"><span class="linenos">1678</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-1679"><a href="#L-1679"><span class="linenos">1679</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1680"><a href="#L-1680"><span class="linenos">1680</span></a>
-</span><span id="L-1681"><a href="#L-1681"><span class="linenos">1681</span></a>
-</span><span id="L-1682"><a href="#L-1682"><span class="linenos">1682</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-1683"><a href="#L-1683"><span class="linenos">1683</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-1684"><a href="#L-1684"><span class="linenos">1684</span></a>
-</span><span id="L-1685"><a href="#L-1685"><span class="linenos">1685</span></a>
-</span><span id="L-1686"><a href="#L-1686"><span class="linenos">1686</span></a><span class="k">class</span> <span class="nc">TableFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-1687"><a href="#L-1687"><span class="linenos">1687</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1688"><a href="#L-1688"><span class="linenos">1688</span></a>
-</span><span id="L-1689"><a href="#L-1689"><span class="linenos">1689</span></a>
-</span><span id="L-1690"><a href="#L-1690"><span class="linenos">1690</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-1691"><a href="#L-1691"><span class="linenos">1691</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;global_&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-1692"><a href="#L-1692"><span class="linenos">1692</span></a>
-</span><span id="L-1693"><a href="#L-1693"><span class="linenos">1693</span></a>
-</span><span id="L-1694"><a href="#L-1694"><span class="linenos">1694</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-1695"><a href="#L-1695"><span class="linenos">1695</span></a> <span class="n">arg_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-1641"><a href="#L-1641"><span class="linenos">1641</span></a>
+</span><span id="L-1642"><a href="#L-1642"><span class="linenos">1642</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-1643"><a href="#L-1643"><span class="linenos">1643</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1644"><a href="#L-1644"><span class="linenos">1644</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-1645"><a href="#L-1645"><span class="linenos">1645</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-1646"><a href="#L-1646"><span class="linenos">1646</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-1647"><a href="#L-1647"><span class="linenos">1647</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-1648"><a href="#L-1648"><span class="linenos">1648</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-1649"><a href="#L-1649"><span class="linenos">1649</span></a> <span class="p">}</span>
+</span><span id="L-1650"><a href="#L-1650"><span class="linenos">1650</span></a>
+</span><span id="L-1651"><a href="#L-1651"><span class="linenos">1651</span></a>
+</span><span id="L-1652"><a href="#L-1652"><span class="linenos">1652</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-1653"><a href="#L-1653"><span class="linenos">1653</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-1654"><a href="#L-1654"><span class="linenos">1654</span></a>
+</span><span id="L-1655"><a href="#L-1655"><span class="linenos">1655</span></a>
+</span><span id="L-1656"><a href="#L-1656"><span class="linenos">1656</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-1657"><a href="#L-1657"><span class="linenos">1657</span></a> <span class="n">arg_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-1658"><a href="#L-1658"><span class="linenos">1658</span></a>
+</span><span id="L-1659"><a href="#L-1659"><span class="linenos">1659</span></a>
+</span><span id="L-1660"><a href="#L-1660"><span class="linenos">1660</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-1661"><a href="#L-1661"><span class="linenos">1661</span></a> <span class="n">arg_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-1662"><a href="#L-1662"><span class="linenos">1662</span></a>
+</span><span id="L-1663"><a href="#L-1663"><span class="linenos">1663</span></a>
+</span><span id="L-1664"><a href="#L-1664"><span class="linenos">1664</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-1665"><a href="#L-1665"><span class="linenos">1665</span></a> <span class="n">arg_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-1666"><a href="#L-1666"><span class="linenos">1666</span></a>
+</span><span id="L-1667"><a href="#L-1667"><span class="linenos">1667</span></a>
+</span><span id="L-1668"><a href="#L-1668"><span class="linenos">1668</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-1669"><a href="#L-1669"><span class="linenos">1669</span></a> <span class="n">arg_type</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-1670"><a href="#L-1670"><span class="linenos">1670</span></a>
+</span><span id="L-1671"><a href="#L-1671"><span class="linenos">1671</span></a>
+</span><span id="L-1672"><a href="#L-1672"><span class="linenos">1672</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-1673"><a href="#L-1673"><span class="linenos">1673</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1674"><a href="#L-1674"><span class="linenos">1674</span></a>
+</span><span id="L-1675"><a href="#L-1675"><span class="linenos">1675</span></a>
+</span><span id="L-1676"><a href="#L-1676"><span class="linenos">1676</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-1677"><a href="#L-1677"><span class="linenos">1677</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1678"><a href="#L-1678"><span class="linenos">1678</span></a>
+</span><span id="L-1679"><a href="#L-1679"><span class="linenos">1679</span></a>
+</span><span id="L-1680"><a href="#L-1680"><span class="linenos">1680</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-1681"><a href="#L-1681"><span class="linenos">1681</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1682"><a href="#L-1682"><span class="linenos">1682</span></a>
+</span><span id="L-1683"><a href="#L-1683"><span class="linenos">1683</span></a>
+</span><span id="L-1684"><a href="#L-1684"><span class="linenos">1684</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-1685"><a href="#L-1685"><span class="linenos">1685</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
+</span><span id="L-1686"><a href="#L-1686"><span class="linenos">1686</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1687"><a href="#L-1687"><span class="linenos">1687</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-1688"><a href="#L-1688"><span class="linenos">1688</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-1689"><a href="#L-1689"><span class="linenos">1689</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-1690"><a href="#L-1690"><span class="linenos">1690</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-1691"><a href="#L-1691"><span class="linenos">1691</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-1692"><a href="#L-1692"><span class="linenos">1692</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-1693"><a href="#L-1693"><span class="linenos">1693</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-1694"><a href="#L-1694"><span class="linenos">1694</span></a> <span class="p">}</span>
+</span><span id="L-1695"><a href="#L-1695"><span class="linenos">1695</span></a>
</span><span id="L-1696"><a href="#L-1696"><span class="linenos">1696</span></a>
-</span><span id="L-1697"><a href="#L-1697"><span class="linenos">1697</span></a>
-</span><span id="L-1698"><a href="#L-1698"><span class="linenos">1698</span></a><span class="k">class</span> <span class="nc">VolatilityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-1699"><a href="#L-1699"><span class="linenos">1699</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1697"><a href="#L-1697"><span class="linenos">1697</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-1698"><a href="#L-1698"><span class="linenos">1698</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1699"><a href="#L-1699"><span class="linenos">1699</span></a>
</span><span id="L-1700"><a href="#L-1700"><span class="linenos">1700</span></a>
-</span><span id="L-1701"><a href="#L-1701"><span class="linenos">1701</span></a>
-</span><span id="L-1702"><a href="#L-1702"><span class="linenos">1702</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-1703"><a href="#L-1703"><span class="linenos">1703</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-1701"><a href="#L-1701"><span class="linenos">1701</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-1702"><a href="#L-1702"><span class="linenos">1702</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1703"><a href="#L-1703"><span class="linenos">1703</span></a>
</span><span id="L-1704"><a href="#L-1704"><span class="linenos">1704</span></a>
-</span><span id="L-1705"><a href="#L-1705"><span class="linenos">1705</span></a>
-</span><span id="L-1706"><a href="#L-1706"><span class="linenos">1706</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-1707"><a href="#L-1707"><span class="linenos">1707</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1705"><a href="#L-1705"><span class="linenos">1705</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-1706"><a href="#L-1706"><span class="linenos">1706</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-1707"><a href="#L-1707"><span class="linenos">1707</span></a>
</span><span id="L-1708"><a href="#L-1708"><span class="linenos">1708</span></a>
-</span><span id="L-1709"><a href="#L-1709"><span class="linenos">1709</span></a>
-</span><span id="L-1710"><a href="#L-1710"><span class="linenos">1710</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-1711"><a href="#L-1711"><span class="linenos">1711</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-1709"><a href="#L-1709"><span class="linenos">1709</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-1710"><a href="#L-1710"><span class="linenos">1710</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-1711"><a href="#L-1711"><span class="linenos">1711</span></a>
</span><span id="L-1712"><a href="#L-1712"><span class="linenos">1712</span></a>
-</span><span id="L-1713"><a href="#L-1713"><span class="linenos">1713</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1714"><a href="#L-1714"><span class="linenos">1714</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-1715"><a href="#L-1715"><span class="linenos">1715</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-1716"><a href="#L-1716"><span class="linenos">1716</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-1717"><a href="#L-1717"><span class="linenos">1717</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-1718"><a href="#L-1718"><span class="linenos">1718</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-1719"><a href="#L-1719"><span class="linenos">1719</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-1720"><a href="#L-1720"><span class="linenos">1720</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-1721"><a href="#L-1721"><span class="linenos">1721</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-1722"><a href="#L-1722"><span class="linenos">1722</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-1723"><a href="#L-1723"><span class="linenos">1723</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-1724"><a href="#L-1724"><span class="linenos">1724</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-1725"><a href="#L-1725"><span class="linenos">1725</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-1726"><a href="#L-1726"><span class="linenos">1726</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-1727"><a href="#L-1727"><span class="linenos">1727</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-1728"><a href="#L-1728"><span class="linenos">1728</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-1729"><a href="#L-1729"><span class="linenos">1729</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-1730"><a href="#L-1730"><span class="linenos">1730</span></a> <span class="s2">&quot;TABLE_FORMAT&quot;</span><span class="p">:</span> <span class="n">TableFormatProperty</span><span class="p">,</span>
-</span><span id="L-1731"><a href="#L-1731"><span class="linenos">1731</span></a> <span class="p">}</span>
+</span><span id="L-1713"><a href="#L-1713"><span class="linenos">1713</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-1714"><a href="#L-1714"><span class="linenos">1714</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1715"><a href="#L-1715"><span class="linenos">1715</span></a>
+</span><span id="L-1716"><a href="#L-1716"><span class="linenos">1716</span></a>
+</span><span id="L-1717"><a href="#L-1717"><span class="linenos">1717</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-1718"><a href="#L-1718"><span class="linenos">1718</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-1719"><a href="#L-1719"><span class="linenos">1719</span></a>
+</span><span id="L-1720"><a href="#L-1720"><span class="linenos">1720</span></a>
+</span><span id="L-1721"><a href="#L-1721"><span class="linenos">1721</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-1722"><a href="#L-1722"><span class="linenos">1722</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1723"><a href="#L-1723"><span class="linenos">1723</span></a>
+</span><span id="L-1724"><a href="#L-1724"><span class="linenos">1724</span></a>
+</span><span id="L-1725"><a href="#L-1725"><span class="linenos">1725</span></a><span class="k">class</span> <span class="nc">TableFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-1726"><a href="#L-1726"><span class="linenos">1726</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1727"><a href="#L-1727"><span class="linenos">1727</span></a>
+</span><span id="L-1728"><a href="#L-1728"><span class="linenos">1728</span></a>
+</span><span id="L-1729"><a href="#L-1729"><span class="linenos">1729</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-1730"><a href="#L-1730"><span class="linenos">1730</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;global_&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-1731"><a href="#L-1731"><span class="linenos">1731</span></a>
</span><span id="L-1732"><a href="#L-1732"><span class="linenos">1732</span></a>
-</span><span id="L-1733"><a href="#L-1733"><span class="linenos">1733</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-1734"><a href="#L-1734"><span class="linenos">1734</span></a>
-</span><span id="L-1735"><a href="#L-1735"><span class="linenos">1735</span></a> <span class="c1"># CREATE property locations</span>
-</span><span id="L-1736"><a href="#L-1736"><span class="linenos">1736</span></a> <span class="c1"># Form: schema specified</span>
-</span><span id="L-1737"><a href="#L-1737"><span class="linenos">1737</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="L-1738"><a href="#L-1738"><span class="linenos">1738</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="L-1739"><a href="#L-1739"><span class="linenos">1739</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
-</span><span id="L-1740"><a href="#L-1740"><span class="linenos">1740</span></a> <span class="c1"># with ([POST_WITH])</span>
-</span><span id="L-1741"><a href="#L-1741"><span class="linenos">1741</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
-</span><span id="L-1742"><a href="#L-1742"><span class="linenos">1742</span></a> <span class="c1">#</span>
-</span><span id="L-1743"><a href="#L-1743"><span class="linenos">1743</span></a> <span class="c1"># Form: alias selection</span>
-</span><span id="L-1744"><a href="#L-1744"><span class="linenos">1744</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="L-1745"><a href="#L-1745"><span class="linenos">1745</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="L-1746"><a href="#L-1746"><span class="linenos">1746</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
-</span><span id="L-1747"><a href="#L-1747"><span class="linenos">1747</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
-</span><span id="L-1748"><a href="#L-1748"><span class="linenos">1748</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-1749"><a href="#L-1749"><span class="linenos">1749</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-1750"><a href="#L-1750"><span class="linenos">1750</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-1751"><a href="#L-1751"><span class="linenos">1751</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-1752"><a href="#L-1752"><span class="linenos">1752</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-1753"><a href="#L-1753"><span class="linenos">1753</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-1754"><a href="#L-1754"><span class="linenos">1754</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-1755"><a href="#L-1755"><span class="linenos">1755</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-1756"><a href="#L-1756"><span class="linenos">1756</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-1757"><a href="#L-1757"><span class="linenos">1757</span></a>
-</span><span id="L-1758"><a href="#L-1758"><span class="linenos">1758</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-1759"><a href="#L-1759"><span class="linenos">1759</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="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
-</span><span id="L-1760"><a href="#L-1760"><span class="linenos">1760</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-1761"><a href="#L-1761"><span class="linenos">1761</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-1762"><a href="#L-1762"><span class="linenos">1762</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-1763"><a href="#L-1763"><span class="linenos">1763</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
-</span><span id="L-1764"><a href="#L-1764"><span class="linenos">1764</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-1765"><a href="#L-1765"><span class="linenos">1765</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-1766"><a href="#L-1766"><span class="linenos">1766</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-1767"><a href="#L-1767"><span class="linenos">1767</span></a>
-</span><span id="L-1768"><a href="#L-1768"><span class="linenos">1768</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-1769"><a href="#L-1769"><span class="linenos">1769</span></a>
-</span><span id="L-1770"><a href="#L-1770"><span class="linenos">1770</span></a>
-</span><span id="L-1771"><a href="#L-1771"><span class="linenos">1771</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-1772"><a href="#L-1772"><span class="linenos">1772</span></a> <span class="k">pass</span>
-</span><span id="L-1773"><a href="#L-1773"><span class="linenos">1773</span></a>
+</span><span id="L-1733"><a href="#L-1733"><span class="linenos">1733</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-1734"><a href="#L-1734"><span class="linenos">1734</span></a> <span class="n">arg_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-1735"><a href="#L-1735"><span class="linenos">1735</span></a>
+</span><span id="L-1736"><a href="#L-1736"><span class="linenos">1736</span></a>
+</span><span id="L-1737"><a href="#L-1737"><span class="linenos">1737</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-1738"><a href="#L-1738"><span class="linenos">1738</span></a> <span class="n">arg_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-1739"><a href="#L-1739"><span class="linenos">1739</span></a>
+</span><span id="L-1740"><a href="#L-1740"><span class="linenos">1740</span></a>
+</span><span id="L-1741"><a href="#L-1741"><span class="linenos">1741</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-1742"><a href="#L-1742"><span class="linenos">1742</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-1743"><a href="#L-1743"><span class="linenos">1743</span></a>
+</span><span id="L-1744"><a href="#L-1744"><span class="linenos">1744</span></a>
+</span><span id="L-1745"><a href="#L-1745"><span class="linenos">1745</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-1746"><a href="#L-1746"><span class="linenos">1746</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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-1747"><a href="#L-1747"><span class="linenos">1747</span></a>
+</span><span id="L-1748"><a href="#L-1748"><span class="linenos">1748</span></a>
+</span><span id="L-1749"><a href="#L-1749"><span class="linenos">1749</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-1750"><a href="#L-1750"><span class="linenos">1750</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-1751"><a href="#L-1751"><span class="linenos">1751</span></a>
+</span><span id="L-1752"><a href="#L-1752"><span class="linenos">1752</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1753"><a href="#L-1753"><span class="linenos">1753</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-1754"><a href="#L-1754"><span class="linenos">1754</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-1755"><a href="#L-1755"><span class="linenos">1755</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-1756"><a href="#L-1756"><span class="linenos">1756</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-1757"><a href="#L-1757"><span class="linenos">1757</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-1758"><a href="#L-1758"><span class="linenos">1758</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-1759"><a href="#L-1759"><span class="linenos">1759</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-1760"><a href="#L-1760"><span class="linenos">1760</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-1761"><a href="#L-1761"><span class="linenos">1761</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-1762"><a href="#L-1762"><span class="linenos">1762</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-1763"><a href="#L-1763"><span class="linenos">1763</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-1764"><a href="#L-1764"><span class="linenos">1764</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-1765"><a href="#L-1765"><span class="linenos">1765</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-1766"><a href="#L-1766"><span class="linenos">1766</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-1767"><a href="#L-1767"><span class="linenos">1767</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-1768"><a href="#L-1768"><span class="linenos">1768</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-1769"><a href="#L-1769"><span class="linenos">1769</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-1770"><a href="#L-1770"><span class="linenos">1770</span></a> <span class="s2">&quot;TABLE_FORMAT&quot;</span><span class="p">:</span> <span class="n">TableFormatProperty</span><span class="p">,</span>
+</span><span id="L-1771"><a href="#L-1771"><span class="linenos">1771</span></a> <span class="p">}</span>
+</span><span id="L-1772"><a href="#L-1772"><span class="linenos">1772</span></a>
+</span><span id="L-1773"><a href="#L-1773"><span class="linenos">1773</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-1774"><a href="#L-1774"><span class="linenos">1774</span></a>
-</span><span id="L-1775"><a href="#L-1775"><span class="linenos">1775</span></a><span class="c1"># https://www.ibm.com/docs/en/ias?topic=procedures-return-statement-in-sql</span>
-</span><span id="L-1776"><a href="#L-1776"><span class="linenos">1776</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-1777"><a href="#L-1777"><span class="linenos">1777</span></a> <span class="k">pass</span>
-</span><span id="L-1778"><a href="#L-1778"><span class="linenos">1778</span></a>
-</span><span id="L-1779"><a href="#L-1779"><span class="linenos">1779</span></a>
-</span><span id="L-1780"><a href="#L-1780"><span class="linenos">1780</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-1781"><a href="#L-1781"><span class="linenos">1781</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1782"><a href="#L-1782"><span class="linenos">1782</span></a>
-</span><span id="L-1783"><a href="#L-1783"><span class="linenos">1783</span></a>
-</span><span id="L-1784"><a href="#L-1784"><span class="linenos">1784</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-1785"><a href="#L-1785"><span class="linenos">1785</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-1786"><a href="#L-1786"><span class="linenos">1786</span></a>
-</span><span id="L-1787"><a href="#L-1787"><span class="linenos">1787</span></a>
-</span><span id="L-1788"><a href="#L-1788"><span class="linenos">1788</span></a><span class="k">class</span> <span class="nc">Subqueryable</span><span class="p">(</span><span class="n">Unionable</span><span class="p">):</span>
-</span><span id="L-1789"><a href="#L-1789"><span class="linenos">1789</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
-</span><span id="L-1790"><a href="#L-1790"><span class="linenos">1790</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1791"><a href="#L-1791"><span class="linenos">1791</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
-</span><span id="L-1792"><a href="#L-1792"><span class="linenos">1792</span></a>
-</span><span id="L-1793"><a href="#L-1793"><span class="linenos">1793</span></a><span class="sd"> Example:</span>
-</span><span id="L-1794"><a href="#L-1794"><span class="linenos">1794</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
-</span><span id="L-1795"><a href="#L-1795"><span class="linenos">1795</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
-</span><span id="L-1796"><a href="#L-1796"><span class="linenos">1796</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
+</span><span id="L-1775"><a href="#L-1775"><span class="linenos">1775</span></a> <span class="c1"># CREATE property locations</span>
+</span><span id="L-1776"><a href="#L-1776"><span class="linenos">1776</span></a> <span class="c1"># Form: schema specified</span>
+</span><span id="L-1777"><a href="#L-1777"><span class="linenos">1777</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="L-1778"><a href="#L-1778"><span class="linenos">1778</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="L-1779"><a href="#L-1779"><span class="linenos">1779</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
+</span><span id="L-1780"><a href="#L-1780"><span class="linenos">1780</span></a> <span class="c1"># with ([POST_WITH])</span>
+</span><span id="L-1781"><a href="#L-1781"><span class="linenos">1781</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
+</span><span id="L-1782"><a href="#L-1782"><span class="linenos">1782</span></a> <span class="c1">#</span>
+</span><span id="L-1783"><a href="#L-1783"><span class="linenos">1783</span></a> <span class="c1"># Form: alias selection</span>
+</span><span id="L-1784"><a href="#L-1784"><span class="linenos">1784</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="L-1785"><a href="#L-1785"><span class="linenos">1785</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="L-1786"><a href="#L-1786"><span class="linenos">1786</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
+</span><span id="L-1787"><a href="#L-1787"><span class="linenos">1787</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
+</span><span id="L-1788"><a href="#L-1788"><span class="linenos">1788</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-1789"><a href="#L-1789"><span class="linenos">1789</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-1790"><a href="#L-1790"><span class="linenos">1790</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-1791"><a href="#L-1791"><span class="linenos">1791</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-1792"><a href="#L-1792"><span class="linenos">1792</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-1793"><a href="#L-1793"><span class="linenos">1793</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-1794"><a href="#L-1794"><span class="linenos">1794</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-1795"><a href="#L-1795"><span class="linenos">1795</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-1796"><a href="#L-1796"><span class="linenos">1796</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-1797"><a href="#L-1797"><span class="linenos">1797</span></a>
-</span><span id="L-1798"><a href="#L-1798"><span class="linenos">1798</span></a><span class="sd"> Args:</span>
-</span><span id="L-1799"><a href="#L-1799"><span class="linenos">1799</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
-</span><span id="L-1800"><a href="#L-1800"><span class="linenos">1800</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1801"><a href="#L-1801"><span class="linenos">1801</span></a>
-</span><span id="L-1802"><a href="#L-1802"><span class="linenos">1802</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1803"><a href="#L-1803"><span class="linenos">1803</span></a><span class="sd"> Alias: the subquery</span>
-</span><span id="L-1804"><a href="#L-1804"><span class="linenos">1804</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1805"><a href="#L-1805"><span class="linenos">1805</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-1806"><a href="#L-1806"><span class="linenos">1806</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span>
-</span><span id="L-1807"><a href="#L-1807"><span class="linenos">1807</span></a> <span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="L-1808"><a href="#L-1808"><span class="linenos">1808</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-1809"><a href="#L-1809"><span class="linenos">1809</span></a> <span class="p">)</span>
+</span><span id="L-1798"><a href="#L-1798"><span class="linenos">1798</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-1799"><a href="#L-1799"><span class="linenos">1799</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="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
+</span><span id="L-1800"><a href="#L-1800"><span class="linenos">1800</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-1801"><a href="#L-1801"><span class="linenos">1801</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-1802"><a href="#L-1802"><span class="linenos">1802</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-1803"><a href="#L-1803"><span class="linenos">1803</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
+</span><span id="L-1804"><a href="#L-1804"><span class="linenos">1804</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-1805"><a href="#L-1805"><span class="linenos">1805</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-1806"><a href="#L-1806"><span class="linenos">1806</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-1807"><a href="#L-1807"><span class="linenos">1807</span></a>
+</span><span id="L-1808"><a href="#L-1808"><span class="linenos">1808</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-1809"><a href="#L-1809"><span class="linenos">1809</span></a>
</span><span id="L-1810"><a href="#L-1810"><span class="linenos">1810</span></a>
-</span><span id="L-1811"><a href="#L-1811"><span class="linenos">1811</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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-1812"><a href="#L-1812"><span class="linenos">1812</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
+</span><span id="L-1811"><a href="#L-1811"><span class="linenos">1811</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-1812"><a href="#L-1812"><span class="linenos">1812</span></a> <span class="k">pass</span>
</span><span id="L-1813"><a href="#L-1813"><span class="linenos">1813</span></a>
-</span><span id="L-1814"><a href="#L-1814"><span class="linenos">1814</span></a> <span class="nd">@property</span>
-</span><span id="L-1815"><a href="#L-1815"><span class="linenos">1815</span></a> <span class="k">def</span> <span class="nf">ctes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-1816"><a href="#L-1816"><span class="linenos">1816</span></a> <span class="n">with_</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;with&quot;</span><span class="p">)</span>
-</span><span id="L-1817"><a href="#L-1817"><span class="linenos">1817</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">with_</span><span class="p">:</span>
-</span><span id="L-1818"><a href="#L-1818"><span class="linenos">1818</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="L-1819"><a href="#L-1819"><span class="linenos">1819</span></a> <span class="k">return</span> <span class="n">with_</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="L-1820"><a href="#L-1820"><span class="linenos">1820</span></a>
-</span><span id="L-1821"><a href="#L-1821"><span class="linenos">1821</span></a> <span class="nd">@property</span>
-</span><span id="L-1822"><a href="#L-1822"><span class="linenos">1822</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><span id="L-1823"><a href="#L-1823"><span class="linenos">1823</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `selects`&quot;</span><span class="p">)</span>
-</span><span id="L-1824"><a href="#L-1824"><span class="linenos">1824</span></a>
-</span><span id="L-1825"><a href="#L-1825"><span class="linenos">1825</span></a> <span class="nd">@property</span>
-</span><span id="L-1826"><a href="#L-1826"><span class="linenos">1826</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><span id="L-1827"><a href="#L-1827"><span class="linenos">1827</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `named_selects`&quot;</span><span class="p">)</span>
-</span><span id="L-1828"><a href="#L-1828"><span class="linenos">1828</span></a>
-</span><span id="L-1829"><a href="#L-1829"><span class="linenos">1829</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
-</span><span id="L-1830"><a href="#L-1830"><span class="linenos">1830</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1831"><a href="#L-1831"><span class="linenos">1831</span></a> <span class="n">alias</span><span class="p">,</span>
-</span><span id="L-1832"><a href="#L-1832"><span class="linenos">1832</span></a> <span class="n">as_</span><span class="p">,</span>
-</span><span id="L-1833"><a href="#L-1833"><span class="linenos">1833</span></a> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-1834"><a href="#L-1834"><span class="linenos">1834</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-1835"><a href="#L-1835"><span class="linenos">1835</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-1836"><a href="#L-1836"><span class="linenos">1836</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-1837"><a href="#L-1837"><span class="linenos">1837</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1838"><a href="#L-1838"><span class="linenos">1838</span></a> <span class="p">):</span>
-</span><span id="L-1839"><a href="#L-1839"><span class="linenos">1839</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1840"><a href="#L-1840"><span class="linenos">1840</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="L-1814"><a href="#L-1814"><span class="linenos">1814</span></a>
+</span><span id="L-1815"><a href="#L-1815"><span class="linenos">1815</span></a><span class="c1"># https://www.ibm.com/docs/en/ias?topic=procedures-return-statement-in-sql</span>
+</span><span id="L-1816"><a href="#L-1816"><span class="linenos">1816</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-1817"><a href="#L-1817"><span class="linenos">1817</span></a> <span class="k">pass</span>
+</span><span id="L-1818"><a href="#L-1818"><span class="linenos">1818</span></a>
+</span><span id="L-1819"><a href="#L-1819"><span class="linenos">1819</span></a>
+</span><span id="L-1820"><a href="#L-1820"><span class="linenos">1820</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-1821"><a href="#L-1821"><span class="linenos">1821</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1822"><a href="#L-1822"><span class="linenos">1822</span></a>
+</span><span id="L-1823"><a href="#L-1823"><span class="linenos">1823</span></a>
+</span><span id="L-1824"><a href="#L-1824"><span class="linenos">1824</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-1825"><a href="#L-1825"><span class="linenos">1825</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-1826"><a href="#L-1826"><span class="linenos">1826</span></a>
+</span><span id="L-1827"><a href="#L-1827"><span class="linenos">1827</span></a>
+</span><span id="L-1828"><a href="#L-1828"><span class="linenos">1828</span></a><span class="k">class</span> <span class="nc">Subqueryable</span><span class="p">(</span><span class="n">Unionable</span><span class="p">):</span>
+</span><span id="L-1829"><a href="#L-1829"><span class="linenos">1829</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
+</span><span id="L-1830"><a href="#L-1830"><span class="linenos">1830</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1831"><a href="#L-1831"><span class="linenos">1831</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
+</span><span id="L-1832"><a href="#L-1832"><span class="linenos">1832</span></a>
+</span><span id="L-1833"><a href="#L-1833"><span class="linenos">1833</span></a><span class="sd"> Example:</span>
+</span><span id="L-1834"><a href="#L-1834"><span class="linenos">1834</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
+</span><span id="L-1835"><a href="#L-1835"><span class="linenos">1835</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
+</span><span id="L-1836"><a href="#L-1836"><span class="linenos">1836</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
+</span><span id="L-1837"><a href="#L-1837"><span class="linenos">1837</span></a>
+</span><span id="L-1838"><a href="#L-1838"><span class="linenos">1838</span></a><span class="sd"> Args:</span>
+</span><span id="L-1839"><a href="#L-1839"><span class="linenos">1839</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
+</span><span id="L-1840"><a href="#L-1840"><span class="linenos">1840</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
</span><span id="L-1841"><a href="#L-1841"><span class="linenos">1841</span></a>
-</span><span id="L-1842"><a href="#L-1842"><span class="linenos">1842</span></a><span class="sd"> Example:</span>
-</span><span id="L-1843"><a href="#L-1843"><span class="linenos">1843</span></a><span class="sd"> &gt;&gt;&gt; Select().with_(&quot;tbl2&quot;, as_=&quot;SELECT * FROM tbl&quot;).select(&quot;x&quot;).from_(&quot;tbl2&quot;).sql()</span>
-</span><span id="L-1844"><a href="#L-1844"><span class="linenos">1844</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
-</span><span id="L-1845"><a href="#L-1845"><span class="linenos">1845</span></a>
-</span><span id="L-1846"><a href="#L-1846"><span class="linenos">1846</span></a><span class="sd"> Args:</span>
-</span><span id="L-1847"><a href="#L-1847"><span class="linenos">1847</span></a><span class="sd"> alias (str | Expression): the SQL code string to parse as the table name.</span>
-</span><span id="L-1848"><a href="#L-1848"><span class="linenos">1848</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
-</span><span id="L-1849"><a href="#L-1849"><span class="linenos">1849</span></a><span class="sd"> as_ (str | Expression): the SQL code string to parse as the table expression.</span>
-</span><span id="L-1850"><a href="#L-1850"><span class="linenos">1850</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-1851"><a href="#L-1851"><span class="linenos">1851</span></a><span class="sd"> recursive (bool): set the RECURSIVE part of the expression. Defaults to `False`.</span>
-</span><span id="L-1852"><a href="#L-1852"><span class="linenos">1852</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-1853"><a href="#L-1853"><span class="linenos">1853</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-1854"><a href="#L-1854"><span class="linenos">1854</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-1855"><a href="#L-1855"><span class="linenos">1855</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1856"><a href="#L-1856"><span class="linenos">1856</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-1857"><a href="#L-1857"><span class="linenos">1857</span></a>
-</span><span id="L-1858"><a href="#L-1858"><span class="linenos">1858</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1859"><a href="#L-1859"><span class="linenos">1859</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-1860"><a href="#L-1860"><span class="linenos">1860</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1861"><a href="#L-1861"><span class="linenos">1861</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-1862"><a href="#L-1862"><span class="linenos">1862</span></a> <span class="n">alias</span><span class="p">,</span>
-</span><span id="L-1863"><a href="#L-1863"><span class="linenos">1863</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1864"><a href="#L-1864"><span class="linenos">1864</span></a> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span>
-</span><span id="L-1865"><a href="#L-1865"><span class="linenos">1865</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1866"><a href="#L-1866"><span class="linenos">1866</span></a> <span class="p">)</span>
-</span><span id="L-1867"><a href="#L-1867"><span class="linenos">1867</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-1868"><a href="#L-1868"><span class="linenos">1868</span></a> <span class="n">as_</span><span class="p">,</span>
-</span><span id="L-1869"><a href="#L-1869"><span class="linenos">1869</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-1870"><a href="#L-1870"><span class="linenos">1870</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1871"><a href="#L-1871"><span class="linenos">1871</span></a> <span class="p">)</span>
-</span><span id="L-1872"><a href="#L-1872"><span class="linenos">1872</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span>
-</span><span id="L-1873"><a href="#L-1873"><span class="linenos">1873</span></a> <span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span>
-</span><span id="L-1874"><a href="#L-1874"><span class="linenos">1874</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">,</span>
-</span><span id="L-1875"><a href="#L-1875"><span class="linenos">1875</span></a> <span class="p">)</span>
-</span><span id="L-1876"><a href="#L-1876"><span class="linenos">1876</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-1877"><a href="#L-1877"><span class="linenos">1877</span></a> <span class="n">cte</span><span class="p">,</span>
-</span><span id="L-1878"><a href="#L-1878"><span class="linenos">1878</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1879"><a href="#L-1879"><span class="linenos">1879</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-1880"><a href="#L-1880"><span class="linenos">1880</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-1881"><a href="#L-1881"><span class="linenos">1881</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-1882"><a href="#L-1882"><span class="linenos">1882</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
-</span><span id="L-1883"><a href="#L-1883"><span class="linenos">1883</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-1884"><a href="#L-1884"><span class="linenos">1884</span></a> <span class="p">)</span>
+</span><span id="L-1842"><a href="#L-1842"><span class="linenos">1842</span></a><span class="sd"> Returns:</span>
+</span><span id="L-1843"><a href="#L-1843"><span class="linenos">1843</span></a><span class="sd"> Alias: the subquery</span>
+</span><span id="L-1844"><a href="#L-1844"><span class="linenos">1844</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1845"><a href="#L-1845"><span class="linenos">1845</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-1846"><a href="#L-1846"><span class="linenos">1846</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span>
+</span><span id="L-1847"><a href="#L-1847"><span class="linenos">1847</span></a> <span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="L-1848"><a href="#L-1848"><span class="linenos">1848</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-1849"><a href="#L-1849"><span class="linenos">1849</span></a> <span class="p">)</span>
+</span><span id="L-1850"><a href="#L-1850"><span class="linenos">1850</span></a>
+</span><span id="L-1851"><a href="#L-1851"><span class="linenos">1851</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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-1852"><a href="#L-1852"><span class="linenos">1852</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
+</span><span id="L-1853"><a href="#L-1853"><span class="linenos">1853</span></a>
+</span><span id="L-1854"><a href="#L-1854"><span class="linenos">1854</span></a> <span class="nd">@property</span>
+</span><span id="L-1855"><a href="#L-1855"><span class="linenos">1855</span></a> <span class="k">def</span> <span class="nf">ctes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-1856"><a href="#L-1856"><span class="linenos">1856</span></a> <span class="n">with_</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;with&quot;</span><span class="p">)</span>
+</span><span id="L-1857"><a href="#L-1857"><span class="linenos">1857</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">with_</span><span class="p">:</span>
+</span><span id="L-1858"><a href="#L-1858"><span class="linenos">1858</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="L-1859"><a href="#L-1859"><span class="linenos">1859</span></a> <span class="k">return</span> <span class="n">with_</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="L-1860"><a href="#L-1860"><span class="linenos">1860</span></a>
+</span><span id="L-1861"><a href="#L-1861"><span class="linenos">1861</span></a> <span class="nd">@property</span>
+</span><span id="L-1862"><a href="#L-1862"><span class="linenos">1862</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><span id="L-1863"><a href="#L-1863"><span class="linenos">1863</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `selects`&quot;</span><span class="p">)</span>
+</span><span id="L-1864"><a href="#L-1864"><span class="linenos">1864</span></a>
+</span><span id="L-1865"><a href="#L-1865"><span class="linenos">1865</span></a> <span class="nd">@property</span>
+</span><span id="L-1866"><a href="#L-1866"><span class="linenos">1866</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><span id="L-1867"><a href="#L-1867"><span class="linenos">1867</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `named_selects`&quot;</span><span class="p">)</span>
+</span><span id="L-1868"><a href="#L-1868"><span class="linenos">1868</span></a>
+</span><span id="L-1869"><a href="#L-1869"><span class="linenos">1869</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="L-1870"><a href="#L-1870"><span class="linenos">1870</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1871"><a href="#L-1871"><span class="linenos">1871</span></a> <span class="n">alias</span><span class="p">,</span>
+</span><span id="L-1872"><a href="#L-1872"><span class="linenos">1872</span></a> <span class="n">as_</span><span class="p">,</span>
+</span><span id="L-1873"><a href="#L-1873"><span class="linenos">1873</span></a> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-1874"><a href="#L-1874"><span class="linenos">1874</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-1875"><a href="#L-1875"><span class="linenos">1875</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-1876"><a href="#L-1876"><span class="linenos">1876</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-1877"><a href="#L-1877"><span class="linenos">1877</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1878"><a href="#L-1878"><span class="linenos">1878</span></a> <span class="p">):</span>
+</span><span id="L-1879"><a href="#L-1879"><span class="linenos">1879</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1880"><a href="#L-1880"><span class="linenos">1880</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="L-1881"><a href="#L-1881"><span class="linenos">1881</span></a>
+</span><span id="L-1882"><a href="#L-1882"><span class="linenos">1882</span></a><span class="sd"> Example:</span>
+</span><span id="L-1883"><a href="#L-1883"><span class="linenos">1883</span></a><span class="sd"> &gt;&gt;&gt; Select().with_(&quot;tbl2&quot;, as_=&quot;SELECT * FROM tbl&quot;).select(&quot;x&quot;).from_(&quot;tbl2&quot;).sql()</span>
+</span><span id="L-1884"><a href="#L-1884"><span class="linenos">1884</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
</span><span id="L-1885"><a href="#L-1885"><span class="linenos">1885</span></a>
-</span><span id="L-1886"><a href="#L-1886"><span class="linenos">1886</span></a>
-</span><span id="L-1887"><a href="#L-1887"><span class="linenos">1887</span></a><span class="n">QUERY_MODIFIERS</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1888"><a href="#L-1888"><span class="linenos">1888</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-1889"><a href="#L-1889"><span class="linenos">1889</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-1890"><a href="#L-1890"><span class="linenos">1890</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-1891"><a href="#L-1891"><span class="linenos">1891</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-1892"><a href="#L-1892"><span class="linenos">1892</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-1893"><a href="#L-1893"><span class="linenos">1893</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-1894"><a href="#L-1894"><span class="linenos">1894</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-1895"><a href="#L-1895"><span class="linenos">1895</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-1896"><a href="#L-1896"><span class="linenos">1896</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-1897"><a href="#L-1897"><span class="linenos">1897</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-1898"><a href="#L-1898"><span class="linenos">1898</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-1899"><a href="#L-1899"><span class="linenos">1899</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-1900"><a href="#L-1900"><span class="linenos">1900</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-1901"><a href="#L-1901"><span class="linenos">1901</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-1902"><a href="#L-1902"><span class="linenos">1902</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-1903"><a href="#L-1903"><span class="linenos">1903</span></a> <span class="s2">&quot;lock&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1904"><a href="#L-1904"><span class="linenos">1904</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-1905"><a href="#L-1905"><span class="linenos">1905</span></a><span class="p">}</span>
-</span><span id="L-1906"><a href="#L-1906"><span class="linenos">1906</span></a>
-</span><span id="L-1907"><a href="#L-1907"><span class="linenos">1907</span></a>
-</span><span id="L-1908"><a href="#L-1908"><span class="linenos">1908</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-1909"><a href="#L-1909"><span class="linenos">1909</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1910"><a href="#L-1910"><span class="linenos">1910</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-1911"><a href="#L-1911"><span class="linenos">1911</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-1912"><a href="#L-1912"><span class="linenos">1912</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-1913"><a href="#L-1913"><span class="linenos">1913</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-1914"><a href="#L-1914"><span class="linenos">1914</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-1915"><a href="#L-1915"><span class="linenos">1915</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-1916"><a href="#L-1916"><span class="linenos">1916</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-1917"><a href="#L-1917"><span class="linenos">1917</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-1918"><a href="#L-1918"><span class="linenos">1918</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-1919"><a href="#L-1919"><span class="linenos">1919</span></a> <span class="p">}</span>
-</span><span id="L-1920"><a href="#L-1920"><span class="linenos">1920</span></a>
-</span><span id="L-1921"><a href="#L-1921"><span class="linenos">1921</span></a> <span class="nd">@property</span>
-</span><span id="L-1922"><a href="#L-1922"><span class="linenos">1922</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-1923"><a href="#L-1923"><span class="linenos">1923</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-1924"><a href="#L-1924"><span class="linenos">1924</span></a>
-</span><span id="L-1925"><a href="#L-1925"><span class="linenos">1925</span></a> <span class="nd">@property</span>
-</span><span id="L-1926"><a href="#L-1926"><span class="linenos">1926</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-1927"><a href="#L-1927"><span class="linenos">1927</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-1928"><a href="#L-1928"><span class="linenos">1928</span></a>
-</span><span id="L-1929"><a href="#L-1929"><span class="linenos">1929</span></a>
-</span><span id="L-1930"><a href="#L-1930"><span class="linenos">1930</span></a><span class="c1"># See the TSQL &quot;Querying data in a system-versioned temporal table&quot; page</span>
-</span><span id="L-1931"><a href="#L-1931"><span class="linenos">1931</span></a><span class="k">class</span> <span class="nc">SystemTime</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1932"><a href="#L-1932"><span class="linenos">1932</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1933"><a href="#L-1933"><span class="linenos">1933</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-1934"><a href="#L-1934"><span class="linenos">1934</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-1935"><a href="#L-1935"><span class="linenos">1935</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-1936"><a href="#L-1936"><span class="linenos">1936</span></a> <span class="p">}</span>
-</span><span id="L-1937"><a href="#L-1937"><span class="linenos">1937</span></a>
-</span><span id="L-1938"><a href="#L-1938"><span class="linenos">1938</span></a>
-</span><span id="L-1939"><a href="#L-1939"><span class="linenos">1939</span></a><span class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span>
-</span><span id="L-1940"><a href="#L-1940"><span class="linenos">1940</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1941"><a href="#L-1941"><span class="linenos">1941</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-1942"><a href="#L-1942"><span class="linenos">1942</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-1943"><a href="#L-1943"><span class="linenos">1943</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-1944"><a href="#L-1944"><span class="linenos">1944</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-1945"><a href="#L-1945"><span class="linenos">1945</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="L-1946"><a href="#L-1946"><span class="linenos">1946</span></a> <span class="p">}</span>
+</span><span id="L-1886"><a href="#L-1886"><span class="linenos">1886</span></a><span class="sd"> Args:</span>
+</span><span id="L-1887"><a href="#L-1887"><span class="linenos">1887</span></a><span class="sd"> alias (str | Expression): the SQL code string to parse as the table name.</span>
+</span><span id="L-1888"><a href="#L-1888"><span class="linenos">1888</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="L-1889"><a href="#L-1889"><span class="linenos">1889</span></a><span class="sd"> as_ (str | Expression): the SQL code string to parse as the table expression.</span>
+</span><span id="L-1890"><a href="#L-1890"><span class="linenos">1890</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-1891"><a href="#L-1891"><span class="linenos">1891</span></a><span class="sd"> recursive (bool): set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="L-1892"><a href="#L-1892"><span class="linenos">1892</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="L-1893"><a href="#L-1893"><span class="linenos">1893</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-1894"><a href="#L-1894"><span class="linenos">1894</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-1895"><a href="#L-1895"><span class="linenos">1895</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-1896"><a href="#L-1896"><span class="linenos">1896</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-1897"><a href="#L-1897"><span class="linenos">1897</span></a>
+</span><span id="L-1898"><a href="#L-1898"><span class="linenos">1898</span></a><span class="sd"> Returns:</span>
+</span><span id="L-1899"><a href="#L-1899"><span class="linenos">1899</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-1900"><a href="#L-1900"><span class="linenos">1900</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-1901"><a href="#L-1901"><span class="linenos">1901</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-1902"><a href="#L-1902"><span class="linenos">1902</span></a> <span class="n">alias</span><span class="p">,</span>
+</span><span id="L-1903"><a href="#L-1903"><span class="linenos">1903</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1904"><a href="#L-1904"><span class="linenos">1904</span></a> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span>
+</span><span id="L-1905"><a href="#L-1905"><span class="linenos">1905</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1906"><a href="#L-1906"><span class="linenos">1906</span></a> <span class="p">)</span>
+</span><span id="L-1907"><a href="#L-1907"><span class="linenos">1907</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-1908"><a href="#L-1908"><span class="linenos">1908</span></a> <span class="n">as_</span><span class="p">,</span>
+</span><span id="L-1909"><a href="#L-1909"><span class="linenos">1909</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-1910"><a href="#L-1910"><span class="linenos">1910</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-1911"><a href="#L-1911"><span class="linenos">1911</span></a> <span class="p">)</span>
+</span><span id="L-1912"><a href="#L-1912"><span class="linenos">1912</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span>
+</span><span id="L-1913"><a href="#L-1913"><span class="linenos">1913</span></a> <span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span>
+</span><span id="L-1914"><a href="#L-1914"><span class="linenos">1914</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">,</span>
+</span><span id="L-1915"><a href="#L-1915"><span class="linenos">1915</span></a> <span class="p">)</span>
+</span><span id="L-1916"><a href="#L-1916"><span class="linenos">1916</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-1917"><a href="#L-1917"><span class="linenos">1917</span></a> <span class="n">cte</span><span class="p">,</span>
+</span><span id="L-1918"><a href="#L-1918"><span class="linenos">1918</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-1919"><a href="#L-1919"><span class="linenos">1919</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-1920"><a href="#L-1920"><span class="linenos">1920</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-1921"><a href="#L-1921"><span class="linenos">1921</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-1922"><a href="#L-1922"><span class="linenos">1922</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
+</span><span id="L-1923"><a href="#L-1923"><span class="linenos">1923</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-1924"><a href="#L-1924"><span class="linenos">1924</span></a> <span class="p">)</span>
+</span><span id="L-1925"><a href="#L-1925"><span class="linenos">1925</span></a>
+</span><span id="L-1926"><a href="#L-1926"><span class="linenos">1926</span></a>
+</span><span id="L-1927"><a href="#L-1927"><span class="linenos">1927</span></a><span class="n">QUERY_MODIFIERS</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1928"><a href="#L-1928"><span class="linenos">1928</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-1929"><a href="#L-1929"><span class="linenos">1929</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-1930"><a href="#L-1930"><span class="linenos">1930</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-1931"><a href="#L-1931"><span class="linenos">1931</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-1932"><a href="#L-1932"><span class="linenos">1932</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-1933"><a href="#L-1933"><span class="linenos">1933</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-1934"><a href="#L-1934"><span class="linenos">1934</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-1935"><a href="#L-1935"><span class="linenos">1935</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-1936"><a href="#L-1936"><span class="linenos">1936</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-1937"><a href="#L-1937"><span class="linenos">1937</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-1938"><a href="#L-1938"><span class="linenos">1938</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-1939"><a href="#L-1939"><span class="linenos">1939</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-1940"><a href="#L-1940"><span class="linenos">1940</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-1941"><a href="#L-1941"><span class="linenos">1941</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-1942"><a href="#L-1942"><span class="linenos">1942</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-1943"><a href="#L-1943"><span class="linenos">1943</span></a> <span class="s2">&quot;lock&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1944"><a href="#L-1944"><span class="linenos">1944</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-1945"><a href="#L-1945"><span class="linenos">1945</span></a><span class="p">}</span>
+</span><span id="L-1946"><a href="#L-1946"><span class="linenos">1946</span></a>
</span><span id="L-1947"><a href="#L-1947"><span class="linenos">1947</span></a>
-</span><span id="L-1948"><a href="#L-1948"><span class="linenos">1948</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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-1949"><a href="#L-1949"><span class="linenos">1949</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-1950"><a href="#L-1950"><span class="linenos">1950</span></a><span class="sd"> Set the LIMIT expression.</span>
-</span><span id="L-1951"><a href="#L-1951"><span class="linenos">1951</span></a>
-</span><span id="L-1952"><a href="#L-1952"><span class="linenos">1952</span></a><span class="sd"> Example:</span>
-</span><span id="L-1953"><a href="#L-1953"><span class="linenos">1953</span></a><span class="sd"> &gt;&gt;&gt; select(&quot;1&quot;).union(select(&quot;1&quot;)).limit(1).sql()</span>
-</span><span id="L-1954"><a href="#L-1954"><span class="linenos">1954</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
-</span><span id="L-1955"><a href="#L-1955"><span class="linenos">1955</span></a>
-</span><span id="L-1956"><a href="#L-1956"><span class="linenos">1956</span></a><span class="sd"> Args:</span>
-</span><span id="L-1957"><a href="#L-1957"><span class="linenos">1957</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="L-1958"><a href="#L-1958"><span class="linenos">1958</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="L-1959"><a href="#L-1959"><span class="linenos">1959</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="L-1960"><a href="#L-1960"><span class="linenos">1960</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="L-1961"><a href="#L-1961"><span class="linenos">1961</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-1962"><a href="#L-1962"><span class="linenos">1962</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1963"><a href="#L-1963"><span class="linenos">1963</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-1948"><a href="#L-1948"><span class="linenos">1948</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-1949"><a href="#L-1949"><span class="linenos">1949</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1950"><a href="#L-1950"><span class="linenos">1950</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-1951"><a href="#L-1951"><span class="linenos">1951</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-1952"><a href="#L-1952"><span class="linenos">1952</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-1953"><a href="#L-1953"><span class="linenos">1953</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-1954"><a href="#L-1954"><span class="linenos">1954</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-1955"><a href="#L-1955"><span class="linenos">1955</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-1956"><a href="#L-1956"><span class="linenos">1956</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-1957"><a href="#L-1957"><span class="linenos">1957</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-1958"><a href="#L-1958"><span class="linenos">1958</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-1959"><a href="#L-1959"><span class="linenos">1959</span></a> <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 class="nd">@property</span>
+</span><span id="L-1962"><a href="#L-1962"><span class="linenos">1962</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-1963"><a href="#L-1963"><span class="linenos">1963</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-1964"><a href="#L-1964"><span class="linenos">1964</span></a>
-</span><span id="L-1965"><a href="#L-1965"><span class="linenos">1965</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1966"><a href="#L-1966"><span class="linenos">1966</span></a><span class="sd"> Select: The limited subqueryable.</span>
-</span><span id="L-1967"><a href="#L-1967"><span class="linenos">1967</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-1968"><a href="#L-1968"><span class="linenos">1968</span></a> <span class="k">return</span> <span class="p">(</span>
-</span><span id="L-1969"><a href="#L-1969"><span class="linenos">1969</span></a> <span class="n">select</span><span class="p">(</span><span class="s2">&quot;*&quot;</span><span class="p">)</span>
-</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a> <span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">&quot;_l_0&quot;</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-1971"><a href="#L-1971"><span class="linenos">1971</span></a> <span class="o">.</span><span class="n">limit</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="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a> <span class="p">)</span>
-</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</span></a>
-</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-1976"><a href="#L-1976"><span class="linenos">1976</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><span id="L-1977"><a href="#L-1977"><span class="linenos">1977</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-1978"><a href="#L-1978"><span class="linenos">1978</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-1979"><a href="#L-1979"><span class="linenos">1979</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-1980"><a href="#L-1980"><span class="linenos">1980</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-1981"><a href="#L-1981"><span class="linenos">1981</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="L-1982"><a href="#L-1982"><span class="linenos">1982</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Append to or set the SELECT of the union recursively.</span>
-</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="sd"> Example:</span>
-</span><span id="L-1985"><a href="#L-1985"><span class="linenos">1985</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="L-1986"><a href="#L-1986"><span class="linenos">1986</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;select a from x union select a from y union select a from z&quot;).select(&quot;b&quot;).sql()</span>
-</span><span id="L-1987"><a href="#L-1987"><span class="linenos">1987</span></a><span class="sd"> &#39;SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z&#39;</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 class="sd"> Args:</span>
-</span><span id="L-1990"><a href="#L-1990"><span class="linenos">1990</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-1991"><a href="#L-1991"><span class="linenos">1991</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-1992"><a href="#L-1992"><span class="linenos">1992</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-1993"><a href="#L-1993"><span class="linenos">1993</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-1994"><a href="#L-1994"><span class="linenos">1994</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-1995"><a href="#L-1995"><span class="linenos">1995</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-1996"><a href="#L-1996"><span class="linenos">1996</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-1997"><a href="#L-1997"><span class="linenos">1997</span></a>
-</span><span id="L-1998"><a href="#L-1998"><span class="linenos">1998</span></a><span class="sd"> Returns:</span>
-</span><span id="L-1999"><a href="#L-1999"><span class="linenos">1999</span></a><span class="sd"> Union: the modified expression.</span>
-</span><span id="L-2000"><a href="#L-2000"><span class="linenos">2000</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2001"><a href="#L-2001"><span class="linenos">2001</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
-</span><span id="L-2002"><a href="#L-2002"><span class="linenos">2002</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-2003"><a href="#L-2003"><span class="linenos">2003</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-2004"><a href="#L-2004"><span class="linenos">2004</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-2005"><a href="#L-2005"><span class="linenos">2005</span></a> <span class="p">)</span>
-</span><span id="L-2006"><a href="#L-2006"><span class="linenos">2006</span></a> <span class="k">return</span> <span class="n">this</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="nd">@property</span>
-</span><span id="L-2009"><a href="#L-2009"><span class="linenos">2009</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><span id="L-2010"><a href="#L-2010"><span class="linenos">2010</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-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="nd">@property</span>
-</span><span id="L-2013"><a href="#L-2013"><span class="linenos">2013</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-2014"><a href="#L-2014"><span class="linenos">2014</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-2015"><a href="#L-2015"><span class="linenos">2015</span></a>
-</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">selects</span><span class="p">(</span><span class="bp">self</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">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</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">left</span><span class="p">(</span><span class="bp">self</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><span id="L-1965"><a href="#L-1965"><span class="linenos">1965</span></a> <span class="nd">@property</span>
+</span><span id="L-1966"><a href="#L-1966"><span class="linenos">1966</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-1967"><a href="#L-1967"><span class="linenos">1967</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-1968"><a href="#L-1968"><span class="linenos">1968</span></a>
+</span><span id="L-1969"><a href="#L-1969"><span class="linenos">1969</span></a>
+</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a><span class="c1"># See the TSQL &quot;Querying data in a system-versioned temporal table&quot; page</span>
+</span><span id="L-1971"><a href="#L-1971"><span class="linenos">1971</span></a><span class="k">class</span> <span class="nc">SystemTime</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</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-1974"><a href="#L-1974"><span class="linenos">1974</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-1975"><a href="#L-1975"><span class="linenos">1975</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-1976"><a href="#L-1976"><span class="linenos">1976</span></a> <span class="p">}</span>
+</span><span id="L-1977"><a href="#L-1977"><span class="linenos">1977</span></a>
+</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 class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span>
+</span><span id="L-1980"><a href="#L-1980"><span class="linenos">1980</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1981"><a href="#L-1981"><span class="linenos">1981</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-1982"><a href="#L-1982"><span class="linenos">1982</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-1983"><a href="#L-1983"><span class="linenos">1983</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-1984"><a href="#L-1984"><span class="linenos">1984</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-1985"><a href="#L-1985"><span class="linenos">1985</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="L-1986"><a href="#L-1986"><span class="linenos">1986</span></a> <span class="p">}</span>
+</span><span id="L-1987"><a href="#L-1987"><span class="linenos">1987</span></a>
+</span><span id="L-1988"><a href="#L-1988"><span class="linenos">1988</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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-1989"><a href="#L-1989"><span class="linenos">1989</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-1990"><a href="#L-1990"><span class="linenos">1990</span></a><span class="sd"> Set the LIMIT expression.</span>
+</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="sd"> Example:</span>
+</span><span id="L-1993"><a href="#L-1993"><span class="linenos">1993</span></a><span class="sd"> &gt;&gt;&gt; select(&quot;1&quot;).union(select(&quot;1&quot;)).limit(1).sql()</span>
+</span><span id="L-1994"><a href="#L-1994"><span class="linenos">1994</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
+</span><span id="L-1995"><a href="#L-1995"><span class="linenos">1995</span></a>
+</span><span id="L-1996"><a href="#L-1996"><span class="linenos">1996</span></a><span class="sd"> Args:</span>
+</span><span id="L-1997"><a href="#L-1997"><span class="linenos">1997</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
+</span><span id="L-1998"><a href="#L-1998"><span class="linenos">1998</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="L-1999"><a href="#L-1999"><span class="linenos">1999</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="L-2000"><a href="#L-2000"><span class="linenos">2000</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="L-2001"><a href="#L-2001"><span class="linenos">2001</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-2002"><a href="#L-2002"><span class="linenos">2002</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2003"><a href="#L-2003"><span class="linenos">2003</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</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="sd"> Returns:</span>
+</span><span id="L-2006"><a href="#L-2006"><span class="linenos">2006</span></a><span class="sd"> Select: The limited subqueryable.</span>
+</span><span id="L-2007"><a href="#L-2007"><span class="linenos">2007</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2008"><a href="#L-2008"><span class="linenos">2008</span></a> <span class="k">return</span> <span class="p">(</span>
+</span><span id="L-2009"><a href="#L-2009"><span class="linenos">2009</span></a> <span class="n">select</span><span class="p">(</span><span class="s2">&quot;*&quot;</span><span class="p">)</span>
+</span><span id="L-2010"><a href="#L-2010"><span class="linenos">2010</span></a> <span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">&quot;_l_0&quot;</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-2011"><a href="#L-2011"><span class="linenos">2011</span></a> <span class="o">.</span><span class="n">limit</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="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-2012"><a href="#L-2012"><span class="linenos">2012</span></a> <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 class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="L-2015"><a href="#L-2015"><span class="linenos">2015</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2016"><a href="#L-2016"><span class="linenos">2016</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><span id="L-2017"><a href="#L-2017"><span class="linenos">2017</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-2018"><a href="#L-2018"><span class="linenos">2018</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-2019"><a href="#L-2019"><span class="linenos">2019</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-2020"><a href="#L-2020"><span class="linenos">2020</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2021"><a href="#L-2021"><span class="linenos">2021</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="L-2022"><a href="#L-2022"><span class="linenos">2022</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Append to or set the SELECT of the union recursively.</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 class="nd">@property</span>
-</span><span id="L-2025"><a href="#L-2025"><span class="linenos">2025</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-2026"><a href="#L-2026"><span class="linenos">2026</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-2027"><a href="#L-2027"><span class="linenos">2027</span></a>
+</span><span id="L-2024"><a href="#L-2024"><span class="linenos">2024</span></a><span class="sd"> Example:</span>
+</span><span id="L-2025"><a href="#L-2025"><span class="linenos">2025</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="L-2026"><a href="#L-2026"><span class="linenos">2026</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;select a from x union select a from y union select a from z&quot;).select(&quot;b&quot;).sql()</span>
+</span><span id="L-2027"><a href="#L-2027"><span class="linenos">2027</span></a><span class="sd"> &#39;SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z&#39;</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">Except</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
-</span><span id="L-2030"><a href="#L-2030"><span class="linenos">2030</span></a> <span class="k">pass</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">Intersect</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
-</span><span id="L-2034"><a href="#L-2034"><span class="linenos">2034</span></a> <span class="k">pass</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">Unnest</span><span class="p">(</span><span class="n">UDTF</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><span id="L-2039"><a href="#L-2039"><span class="linenos">2039</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-2040"><a href="#L-2040"><span class="linenos">2040</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-2041"><a href="#L-2041"><span class="linenos">2041</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-2042"><a href="#L-2042"><span class="linenos">2042</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-2043"><a href="#L-2043"><span class="linenos">2043</span></a> <span class="p">}</span>
-</span><span id="L-2044"><a href="#L-2044"><span class="linenos">2044</span></a>
-</span><span id="L-2045"><a href="#L-2045"><span class="linenos">2045</span></a>
-</span><span id="L-2046"><a href="#L-2046"><span class="linenos">2046</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-2047"><a href="#L-2047"><span class="linenos">2047</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2048"><a href="#L-2048"><span class="linenos">2048</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-2049"><a href="#L-2049"><span class="linenos">2049</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-2050"><a href="#L-2050"><span class="linenos">2050</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-2051"><a href="#L-2051"><span class="linenos">2051</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-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="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2054"><a href="#L-2054"><span class="linenos">2054</span></a> <span class="p">}</span>
+</span><span id="L-2029"><a href="#L-2029"><span class="linenos">2029</span></a><span class="sd"> Args:</span>
+</span><span id="L-2030"><a href="#L-2030"><span class="linenos">2030</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2031"><a href="#L-2031"><span class="linenos">2031</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2032"><a href="#L-2032"><span class="linenos">2032</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2033"><a href="#L-2033"><span class="linenos">2033</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-2034"><a href="#L-2034"><span class="linenos">2034</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-2035"><a href="#L-2035"><span class="linenos">2035</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2036"><a href="#L-2036"><span class="linenos">2036</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2037"><a href="#L-2037"><span class="linenos">2037</span></a>
+</span><span id="L-2038"><a href="#L-2038"><span class="linenos">2038</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2039"><a href="#L-2039"><span class="linenos">2039</span></a><span class="sd"> Union: the modified expression.</span>
+</span><span id="L-2040"><a href="#L-2040"><span class="linenos">2040</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2041"><a href="#L-2041"><span class="linenos">2041</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
+</span><span id="L-2042"><a href="#L-2042"><span class="linenos">2042</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-2043"><a href="#L-2043"><span class="linenos">2043</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-2044"><a href="#L-2044"><span class="linenos">2044</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-2045"><a href="#L-2045"><span class="linenos">2045</span></a> <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="n">this</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">named_selects</span><span class="p">(</span><span class="bp">self</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">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-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 class="nd">@property</span>
+</span><span id="L-2053"><a href="#L-2053"><span class="linenos">2053</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-2054"><a href="#L-2054"><span class="linenos">2054</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-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><span id="L-2057"><a href="#L-2057"><span class="linenos">2057</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-2058"><a href="#L-2058"><span class="linenos">2058</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2059"><a href="#L-2059"><span class="linenos">2059</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-2060"><a href="#L-2060"><span class="linenos">2060</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-2061"><a href="#L-2061"><span class="linenos">2061</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-2062"><a href="#L-2062"><span class="linenos">2062</span></a> <span class="p">}</span>
+</span><span id="L-2056"><a href="#L-2056"><span class="linenos">2056</span></a> <span class="nd">@property</span>
+</span><span id="L-2057"><a href="#L-2057"><span class="linenos">2057</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><span id="L-2058"><a href="#L-2058"><span class="linenos">2058</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-2059"><a href="#L-2059"><span class="linenos">2059</span></a>
+</span><span id="L-2060"><a href="#L-2060"><span class="linenos">2060</span></a> <span class="nd">@property</span>
+</span><span id="L-2061"><a href="#L-2061"><span class="linenos">2061</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-2062"><a href="#L-2062"><span class="linenos">2062</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-2063"><a href="#L-2063"><span class="linenos">2063</span></a>
-</span><span id="L-2064"><a href="#L-2064"><span class="linenos">2064</span></a>
-</span><span id="L-2065"><a href="#L-2065"><span class="linenos">2065</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-2066"><a href="#L-2066"><span class="linenos">2066</span></a> <span class="k">pass</span>
+</span><span id="L-2064"><a href="#L-2064"><span class="linenos">2064</span></a> <span class="nd">@property</span>
+</span><span id="L-2065"><a href="#L-2065"><span class="linenos">2065</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-2066"><a href="#L-2066"><span class="linenos">2066</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-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">Schema</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 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-2069"><a href="#L-2069"><span class="linenos">2069</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-2070"><a href="#L-2070"><span class="linenos">2070</span></a> <span class="k">pass</span>
</span><span id="L-2071"><a href="#L-2071"><span class="linenos">2071</span></a>
</span><span id="L-2072"><a href="#L-2072"><span class="linenos">2072</span></a>
-</span><span id="L-2073"><a href="#L-2073"><span class="linenos">2073</span></a><span class="c1"># Used to represent the FOR UPDATE and FOR SHARE locking read types.</span>
-</span><span id="L-2074"><a href="#L-2074"><span class="linenos">2074</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/innodb-locking-reads.html</span>
-</span><span id="L-2075"><a href="#L-2075"><span class="linenos">2075</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-2076"><a href="#L-2076"><span class="linenos">2076</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><span id="L-2077"><a href="#L-2077"><span class="linenos">2077</span></a>
-</span><span id="L-2078"><a href="#L-2078"><span class="linenos">2078</span></a>
-</span><span id="L-2079"><a href="#L-2079"><span class="linenos">2079</span></a><span class="k">class</span> <span class="nc">Select</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span>
-</span><span id="L-2080"><a href="#L-2080"><span class="linenos">2080</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2081"><a href="#L-2081"><span class="linenos">2081</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-2082"><a href="#L-2082"><span class="linenos">2082</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-2083"><a href="#L-2083"><span class="linenos">2083</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-2084"><a href="#L-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="L-2085"><a href="#L-2085"><span class="linenos">2085</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-2086"><a href="#L-2086"><span class="linenos">2086</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-2087"><a href="#L-2087"><span class="linenos">2087</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-2088"><a href="#L-2088"><span class="linenos">2088</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="L-2089"><a href="#L-2089"><span class="linenos">2089</span></a> <span class="p">}</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="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="L-2092"><a href="#L-2092"><span class="linenos">2092</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2093"><a href="#L-2093"><span class="linenos">2093</span></a><span class="sd"> Set the FROM expression.</span>
-</span><span id="L-2094"><a href="#L-2094"><span class="linenos">2094</span></a>
-</span><span id="L-2095"><a href="#L-2095"><span class="linenos">2095</span></a><span class="sd"> Example:</span>
-</span><span id="L-2096"><a href="#L-2096"><span class="linenos">2096</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
-</span><span id="L-2097"><a href="#L-2097"><span class="linenos">2097</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</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="sd"> Args:</span>
-</span><span id="L-2100"><a href="#L-2100"><span class="linenos">2100</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2101"><a href="#L-2101"><span class="linenos">2101</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
-</span><span id="L-2102"><a href="#L-2102"><span class="linenos">2102</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
-</span><span id="L-2103"><a href="#L-2103"><span class="linenos">2103</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-2104"><a href="#L-2104"><span class="linenos">2104</span></a><span class="sd"> Otherwise, this flattens all the `From` expression into a single expression.</span>
-</span><span id="L-2105"><a href="#L-2105"><span class="linenos">2105</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2106"><a href="#L-2106"><span class="linenos">2106</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2107"><a href="#L-2107"><span class="linenos">2107</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-2073"><a href="#L-2073"><span class="linenos">2073</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-2074"><a href="#L-2074"><span class="linenos">2074</span></a> <span class="k">pass</span>
+</span><span id="L-2075"><a href="#L-2075"><span class="linenos">2075</span></a>
+</span><span id="L-2076"><a href="#L-2076"><span class="linenos">2076</span></a>
+</span><span id="L-2077"><a href="#L-2077"><span class="linenos">2077</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-2078"><a href="#L-2078"><span class="linenos">2078</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2079"><a href="#L-2079"><span class="linenos">2079</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-2080"><a href="#L-2080"><span class="linenos">2080</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-2081"><a href="#L-2081"><span class="linenos">2081</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-2082"><a href="#L-2082"><span class="linenos">2082</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-2083"><a href="#L-2083"><span class="linenos">2083</span></a> <span class="p">}</span>
+</span><span id="L-2084"><a href="#L-2084"><span class="linenos">2084</span></a>
+</span><span id="L-2085"><a href="#L-2085"><span class="linenos">2085</span></a>
+</span><span id="L-2086"><a href="#L-2086"><span class="linenos">2086</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-2087"><a href="#L-2087"><span class="linenos">2087</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2088"><a href="#L-2088"><span class="linenos">2088</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-2089"><a href="#L-2089"><span class="linenos">2089</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-2090"><a href="#L-2090"><span class="linenos">2090</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-2091"><a href="#L-2091"><span class="linenos">2091</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-2092"><a href="#L-2092"><span class="linenos">2092</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-2093"><a href="#L-2093"><span class="linenos">2093</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-2094"><a href="#L-2094"><span class="linenos">2094</span></a> <span class="p">}</span>
+</span><span id="L-2095"><a href="#L-2095"><span class="linenos">2095</span></a>
+</span><span id="L-2096"><a href="#L-2096"><span class="linenos">2096</span></a>
+</span><span id="L-2097"><a href="#L-2097"><span class="linenos">2097</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-2098"><a href="#L-2098"><span class="linenos">2098</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2099"><a href="#L-2099"><span class="linenos">2099</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-2100"><a href="#L-2100"><span class="linenos">2100</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-2101"><a href="#L-2101"><span class="linenos">2101</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-2102"><a href="#L-2102"><span class="linenos">2102</span></a> <span class="p">}</span>
+</span><span id="L-2103"><a href="#L-2103"><span class="linenos">2103</span></a>
+</span><span id="L-2104"><a href="#L-2104"><span class="linenos">2104</span></a>
+</span><span id="L-2105"><a href="#L-2105"><span class="linenos">2105</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-2106"><a href="#L-2106"><span class="linenos">2106</span></a> <span class="k">pass</span>
+</span><span id="L-2107"><a href="#L-2107"><span class="linenos">2107</span></a>
</span><span id="L-2108"><a href="#L-2108"><span class="linenos">2108</span></a>
-</span><span id="L-2109"><a href="#L-2109"><span class="linenos">2109</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2110"><a href="#L-2110"><span class="linenos">2110</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2111"><a href="#L-2111"><span class="linenos">2111</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2112"><a href="#L-2112"><span class="linenos">2112</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-2113"><a href="#L-2113"><span class="linenos">2113</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2114"><a href="#L-2114"><span class="linenos">2114</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2115"><a href="#L-2115"><span class="linenos">2115</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-2116"><a href="#L-2116"><span class="linenos">2116</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2117"><a href="#L-2117"><span class="linenos">2117</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2118"><a href="#L-2118"><span class="linenos">2118</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-2119"><a href="#L-2119"><span class="linenos">2119</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
-</span><span id="L-2120"><a href="#L-2120"><span class="linenos">2120</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2121"><a href="#L-2121"><span class="linenos">2121</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2122"><a href="#L-2122"><span class="linenos">2122</span></a> <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 class="k">def</span> <span class="nf">group_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="L-2125"><a href="#L-2125"><span class="linenos">2125</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2126"><a href="#L-2126"><span class="linenos">2126</span></a><span class="sd"> Set the GROUP BY expression.</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"> Example:</span>
-</span><span id="L-2129"><a href="#L-2129"><span class="linenos">2129</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-2130"><a href="#L-2130"><span class="linenos">2130</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
-</span><span id="L-2131"><a href="#L-2131"><span class="linenos">2131</span></a>
-</span><span id="L-2132"><a href="#L-2132"><span class="linenos">2132</span></a><span class="sd"> Args:</span>
-</span><span id="L-2133"><a href="#L-2133"><span class="linenos">2133</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2134"><a href="#L-2134"><span class="linenos">2134</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="L-2135"><a href="#L-2135"><span class="linenos">2135</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
-</span><span id="L-2136"><a href="#L-2136"><span class="linenos">2136</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-2137"><a href="#L-2137"><span class="linenos">2137</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-2138"><a href="#L-2138"><span class="linenos">2138</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
-</span><span id="L-2139"><a href="#L-2139"><span class="linenos">2139</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2140"><a href="#L-2140"><span class="linenos">2140</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2141"><a href="#L-2141"><span class="linenos">2141</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-2142"><a href="#L-2142"><span class="linenos">2142</span></a>
-</span><span id="L-2143"><a href="#L-2143"><span class="linenos">2143</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2144"><a href="#L-2144"><span class="linenos">2144</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2145"><a href="#L-2145"><span class="linenos">2145</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2146"><a href="#L-2146"><span class="linenos">2146</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-2147"><a href="#L-2147"><span class="linenos">2147</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-2148"><a href="#L-2148"><span class="linenos">2148</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-2149"><a href="#L-2149"><span class="linenos">2149</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2150"><a href="#L-2150"><span class="linenos">2150</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2151"><a href="#L-2151"><span class="linenos">2151</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-2152"><a href="#L-2152"><span class="linenos">2152</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2153"><a href="#L-2153"><span class="linenos">2153</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2154"><a href="#L-2154"><span class="linenos">2154</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-2155"><a href="#L-2155"><span class="linenos">2155</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
-</span><span id="L-2156"><a href="#L-2156"><span class="linenos">2156</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2157"><a href="#L-2157"><span class="linenos">2157</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2158"><a href="#L-2158"><span class="linenos">2158</span></a> <span class="p">)</span>
-</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">def</span> <span class="nf">order_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="L-2161"><a href="#L-2161"><span class="linenos">2161</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2162"><a href="#L-2162"><span class="linenos">2162</span></a><span class="sd"> Set the ORDER BY expression.</span>
+</span><span id="L-2109"><a href="#L-2109"><span class="linenos">2109</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-2110"><a href="#L-2110"><span class="linenos">2110</span></a> <span class="n">arg_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-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><span id="L-2113"><a href="#L-2113"><span class="linenos">2113</span></a><span class="c1"># Used to represent the FOR UPDATE and FOR SHARE locking read types.</span>
+</span><span id="L-2114"><a href="#L-2114"><span class="linenos">2114</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/innodb-locking-reads.html</span>
+</span><span id="L-2115"><a href="#L-2115"><span class="linenos">2115</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-2116"><a href="#L-2116"><span class="linenos">2116</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><span id="L-2117"><a href="#L-2117"><span class="linenos">2117</span></a>
+</span><span id="L-2118"><a href="#L-2118"><span class="linenos">2118</span></a>
+</span><span id="L-2119"><a href="#L-2119"><span class="linenos">2119</span></a><span class="k">class</span> <span class="nc">Select</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span>
+</span><span id="L-2120"><a href="#L-2120"><span class="linenos">2120</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2121"><a href="#L-2121"><span class="linenos">2121</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-2122"><a href="#L-2122"><span class="linenos">2122</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-2123"><a href="#L-2123"><span class="linenos">2123</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-2124"><a href="#L-2124"><span class="linenos">2124</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-2125"><a href="#L-2125"><span class="linenos">2125</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-2126"><a href="#L-2126"><span class="linenos">2126</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-2127"><a href="#L-2127"><span class="linenos">2127</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-2128"><a href="#L-2128"><span class="linenos">2128</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="L-2129"><a href="#L-2129"><span class="linenos">2129</span></a> <span class="p">}</span>
+</span><span id="L-2130"><a href="#L-2130"><span class="linenos">2130</span></a>
+</span><span id="L-2131"><a href="#L-2131"><span class="linenos">2131</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="L-2132"><a href="#L-2132"><span class="linenos">2132</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2133"><a href="#L-2133"><span class="linenos">2133</span></a><span class="sd"> Set the FROM expression.</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="sd"> Example:</span>
+</span><span id="L-2136"><a href="#L-2136"><span class="linenos">2136</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
+</span><span id="L-2137"><a href="#L-2137"><span class="linenos">2137</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
+</span><span id="L-2138"><a href="#L-2138"><span class="linenos">2138</span></a>
+</span><span id="L-2139"><a href="#L-2139"><span class="linenos">2139</span></a><span class="sd"> Args:</span>
+</span><span id="L-2140"><a href="#L-2140"><span class="linenos">2140</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-2141"><a href="#L-2141"><span class="linenos">2141</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
+</span><span id="L-2142"><a href="#L-2142"><span class="linenos">2142</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
+</span><span id="L-2143"><a href="#L-2143"><span class="linenos">2143</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="L-2144"><a href="#L-2144"><span class="linenos">2144</span></a><span class="sd"> Otherwise, this flattens all the `From` expression into a single expression.</span>
+</span><span id="L-2145"><a href="#L-2145"><span class="linenos">2145</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-2146"><a href="#L-2146"><span class="linenos">2146</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2147"><a href="#L-2147"><span class="linenos">2147</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
+</span><span id="L-2150"><a href="#L-2150"><span class="linenos">2150</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2151"><a href="#L-2151"><span class="linenos">2151</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2152"><a href="#L-2152"><span class="linenos">2152</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-2153"><a href="#L-2153"><span class="linenos">2153</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2154"><a href="#L-2154"><span class="linenos">2154</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2155"><a href="#L-2155"><span class="linenos">2155</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-2156"><a href="#L-2156"><span class="linenos">2156</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2157"><a href="#L-2157"><span class="linenos">2157</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2158"><a href="#L-2158"><span class="linenos">2158</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-2159"><a href="#L-2159"><span class="linenos">2159</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
+</span><span id="L-2160"><a href="#L-2160"><span class="linenos">2160</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2161"><a href="#L-2161"><span class="linenos">2161</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2162"><a href="#L-2162"><span class="linenos">2162</span></a> <span class="p">)</span>
</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="sd"> Example:</span>
-</span><span id="L-2165"><a href="#L-2165"><span class="linenos">2165</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).order_by(&quot;x DESC&quot;).sql()</span>
-</span><span id="L-2166"><a href="#L-2166"><span class="linenos">2166</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
+</span><span id="L-2164"><a href="#L-2164"><span class="linenos">2164</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="L-2165"><a href="#L-2165"><span class="linenos">2165</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2166"><a href="#L-2166"><span class="linenos">2166</span></a><span class="sd"> Set the GROUP BY expression.</span>
</span><span id="L-2167"><a href="#L-2167"><span class="linenos">2167</span></a>
-</span><span id="L-2168"><a href="#L-2168"><span class="linenos">2168</span></a><span class="sd"> Args:</span>
-</span><span id="L-2169"><a href="#L-2169"><span class="linenos">2169</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2170"><a href="#L-2170"><span class="linenos">2170</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="L-2171"><a href="#L-2171"><span class="linenos">2171</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
-</span><span id="L-2172"><a href="#L-2172"><span class="linenos">2172</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-2173"><a href="#L-2173"><span class="linenos">2173</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="L-2174"><a href="#L-2174"><span class="linenos">2174</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2175"><a href="#L-2175"><span class="linenos">2175</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2176"><a href="#L-2176"><span class="linenos">2176</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-2177"><a href="#L-2177"><span class="linenos">2177</span></a>
-</span><span id="L-2178"><a href="#L-2178"><span class="linenos">2178</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2179"><a href="#L-2179"><span class="linenos">2179</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2180"><a href="#L-2180"><span class="linenos">2180</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2181"><a href="#L-2181"><span class="linenos">2181</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-2182"><a href="#L-2182"><span class="linenos">2182</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2183"><a href="#L-2183"><span class="linenos">2183</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2184"><a href="#L-2184"><span class="linenos">2184</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;order&quot;</span><span class="p">,</span>
-</span><span id="L-2185"><a href="#L-2185"><span class="linenos">2185</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2186"><a href="#L-2186"><span class="linenos">2186</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2187"><a href="#L-2187"><span class="linenos">2187</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;ORDER BY&quot;</span><span class="p">,</span>
-</span><span id="L-2188"><a href="#L-2188"><span class="linenos">2188</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
-</span><span id="L-2189"><a href="#L-2189"><span class="linenos">2189</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2190"><a href="#L-2190"><span class="linenos">2190</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2191"><a href="#L-2191"><span class="linenos">2191</span></a> <span class="p">)</span>
-</span><span id="L-2192"><a href="#L-2192"><span class="linenos">2192</span></a>
-</span><span id="L-2193"><a href="#L-2193"><span class="linenos">2193</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="L-2194"><a href="#L-2194"><span class="linenos">2194</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2195"><a href="#L-2195"><span class="linenos">2195</span></a><span class="sd"> Set the SORT BY expression.</span>
-</span><span id="L-2196"><a href="#L-2196"><span class="linenos">2196</span></a>
-</span><span id="L-2197"><a href="#L-2197"><span class="linenos">2197</span></a><span class="sd"> Example:</span>
-</span><span id="L-2198"><a href="#L-2198"><span class="linenos">2198</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql()</span>
-</span><span id="L-2199"><a href="#L-2199"><span class="linenos">2199</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
-</span><span id="L-2200"><a href="#L-2200"><span class="linenos">2200</span></a>
-</span><span id="L-2201"><a href="#L-2201"><span class="linenos">2201</span></a><span class="sd"> Args:</span>
-</span><span id="L-2202"><a href="#L-2202"><span class="linenos">2202</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2203"><a href="#L-2203"><span class="linenos">2203</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="L-2204"><a href="#L-2204"><span class="linenos">2204</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
-</span><span id="L-2205"><a href="#L-2205"><span class="linenos">2205</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-2206"><a href="#L-2206"><span class="linenos">2206</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="L-2207"><a href="#L-2207"><span class="linenos">2207</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2208"><a href="#L-2208"><span class="linenos">2208</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2209"><a href="#L-2209"><span class="linenos">2209</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</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="sd"> Returns:</span>
-</span><span id="L-2212"><a href="#L-2212"><span class="linenos">2212</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2213"><a href="#L-2213"><span class="linenos">2213</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2214"><a href="#L-2214"><span class="linenos">2214</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-2215"><a href="#L-2215"><span class="linenos">2215</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2216"><a href="#L-2216"><span class="linenos">2216</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2217"><a href="#L-2217"><span class="linenos">2217</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-2218"><a href="#L-2218"><span class="linenos">2218</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2219"><a href="#L-2219"><span class="linenos">2219</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2220"><a href="#L-2220"><span class="linenos">2220</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-2221"><a href="#L-2221"><span class="linenos">2221</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
-</span><span id="L-2222"><a href="#L-2222"><span class="linenos">2222</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2223"><a href="#L-2223"><span class="linenos">2223</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2224"><a href="#L-2224"><span class="linenos">2224</span></a> <span class="p">)</span>
-</span><span id="L-2225"><a href="#L-2225"><span class="linenos">2225</span></a>
-</span><span id="L-2226"><a href="#L-2226"><span class="linenos">2226</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="L-2227"><a href="#L-2227"><span class="linenos">2227</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2228"><a href="#L-2228"><span class="linenos">2228</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
-</span><span id="L-2229"><a href="#L-2229"><span class="linenos">2229</span></a>
-</span><span id="L-2230"><a href="#L-2230"><span class="linenos">2230</span></a><span class="sd"> Example:</span>
-</span><span id="L-2231"><a href="#L-2231"><span class="linenos">2231</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql()</span>
-</span><span id="L-2232"><a href="#L-2232"><span class="linenos">2232</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
-</span><span id="L-2233"><a href="#L-2233"><span class="linenos">2233</span></a>
-</span><span id="L-2234"><a href="#L-2234"><span class="linenos">2234</span></a><span class="sd"> Args:</span>
-</span><span id="L-2235"><a href="#L-2235"><span class="linenos">2235</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2236"><a href="#L-2236"><span class="linenos">2236</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="L-2237"><a href="#L-2237"><span class="linenos">2237</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
-</span><span id="L-2238"><a href="#L-2238"><span class="linenos">2238</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-2239"><a href="#L-2239"><span class="linenos">2239</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="L-2240"><a href="#L-2240"><span class="linenos">2240</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2241"><a href="#L-2241"><span class="linenos">2241</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2242"><a href="#L-2242"><span class="linenos">2242</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-2243"><a href="#L-2243"><span class="linenos">2243</span></a>
-</span><span id="L-2244"><a href="#L-2244"><span class="linenos">2244</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2245"><a href="#L-2245"><span class="linenos">2245</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2246"><a href="#L-2246"><span class="linenos">2246</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2247"><a href="#L-2247"><span class="linenos">2247</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-2248"><a href="#L-2248"><span class="linenos">2248</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2249"><a href="#L-2249"><span class="linenos">2249</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2250"><a href="#L-2250"><span class="linenos">2250</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-2251"><a href="#L-2251"><span class="linenos">2251</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2252"><a href="#L-2252"><span class="linenos">2252</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2253"><a href="#L-2253"><span class="linenos">2253</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-2254"><a href="#L-2254"><span class="linenos">2254</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
-</span><span id="L-2255"><a href="#L-2255"><span class="linenos">2255</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2256"><a href="#L-2256"><span class="linenos">2256</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2257"><a href="#L-2257"><span class="linenos">2257</span></a> <span class="p">)</span>
-</span><span id="L-2258"><a href="#L-2258"><span class="linenos">2258</span></a>
-</span><span id="L-2259"><a href="#L-2259"><span class="linenos">2259</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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-2260"><a href="#L-2260"><span class="linenos">2260</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2261"><a href="#L-2261"><span class="linenos">2261</span></a><span class="sd"> Set the LIMIT expression.</span>
-</span><span id="L-2262"><a href="#L-2262"><span class="linenos">2262</span></a>
-</span><span id="L-2263"><a href="#L-2263"><span class="linenos">2263</span></a><span class="sd"> Example:</span>
-</span><span id="L-2264"><a href="#L-2264"><span class="linenos">2264</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).limit(10).sql()</span>
-</span><span id="L-2265"><a href="#L-2265"><span class="linenos">2265</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
-</span><span id="L-2266"><a href="#L-2266"><span class="linenos">2266</span></a>
-</span><span id="L-2267"><a href="#L-2267"><span class="linenos">2267</span></a><span class="sd"> Args:</span>
-</span><span id="L-2268"><a href="#L-2268"><span class="linenos">2268</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="L-2269"><a href="#L-2269"><span class="linenos">2269</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="L-2270"><a href="#L-2270"><span class="linenos">2270</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="L-2271"><a href="#L-2271"><span class="linenos">2271</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="L-2272"><a href="#L-2272"><span class="linenos">2272</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2273"><a href="#L-2273"><span class="linenos">2273</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2274"><a href="#L-2274"><span class="linenos">2274</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-2275"><a href="#L-2275"><span class="linenos">2275</span></a>
-</span><span id="L-2276"><a href="#L-2276"><span class="linenos">2276</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2277"><a href="#L-2277"><span class="linenos">2277</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2278"><a href="#L-2278"><span class="linenos">2278</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2279"><a href="#L-2279"><span class="linenos">2279</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="L-2280"><a href="#L-2280"><span class="linenos">2280</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="L-2281"><a href="#L-2281"><span class="linenos">2281</span></a> <span class="n">instance</span><span class="o">=</span><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="n">arg</span><span class="o">=</span><span class="s2">&quot;limit&quot;</span><span class="p">,</span>
-</span><span id="L-2283"><a href="#L-2283"><span class="linenos">2283</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
-</span><span id="L-2284"><a href="#L-2284"><span class="linenos">2284</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LIMIT&quot;</span><span class="p">,</span>
-</span><span id="L-2285"><a href="#L-2285"><span class="linenos">2285</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2286"><a href="#L-2286"><span class="linenos">2286</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2287"><a href="#L-2287"><span class="linenos">2287</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2288"><a href="#L-2288"><span class="linenos">2288</span></a> <span class="p">)</span>
-</span><span id="L-2289"><a href="#L-2289"><span class="linenos">2289</span></a>
-</span><span id="L-2290"><a href="#L-2290"><span class="linenos">2290</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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-2291"><a href="#L-2291"><span class="linenos">2291</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2292"><a href="#L-2292"><span class="linenos">2292</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="L-2293"><a href="#L-2293"><span class="linenos">2293</span></a>
-</span><span id="L-2294"><a href="#L-2294"><span class="linenos">2294</span></a><span class="sd"> Example:</span>
-</span><span id="L-2295"><a href="#L-2295"><span class="linenos">2295</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).offset(10).sql()</span>
-</span><span id="L-2296"><a href="#L-2296"><span class="linenos">2296</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
-</span><span id="L-2297"><a href="#L-2297"><span class="linenos">2297</span></a>
-</span><span id="L-2298"><a href="#L-2298"><span class="linenos">2298</span></a><span class="sd"> Args:</span>
-</span><span id="L-2299"><a href="#L-2299"><span class="linenos">2299</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="L-2300"><a href="#L-2300"><span class="linenos">2300</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="L-2301"><a href="#L-2301"><span class="linenos">2301</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
-</span><span id="L-2302"><a href="#L-2302"><span class="linenos">2302</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
-</span><span id="L-2303"><a href="#L-2303"><span class="linenos">2303</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-2304"><a href="#L-2304"><span class="linenos">2304</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2305"><a href="#L-2305"><span class="linenos">2305</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-2168"><a href="#L-2168"><span class="linenos">2168</span></a><span class="sd"> Example:</span>
+</span><span id="L-2169"><a href="#L-2169"><span class="linenos">2169</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-2170"><a href="#L-2170"><span class="linenos">2170</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
+</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="sd"> Args:</span>
+</span><span id="L-2173"><a href="#L-2173"><span class="linenos">2173</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-2174"><a href="#L-2174"><span class="linenos">2174</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="L-2175"><a href="#L-2175"><span class="linenos">2175</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
+</span><span id="L-2176"><a href="#L-2176"><span class="linenos">2176</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-2177"><a href="#L-2177"><span class="linenos">2177</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="L-2178"><a href="#L-2178"><span class="linenos">2178</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
+</span><span id="L-2179"><a href="#L-2179"><span class="linenos">2179</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-2180"><a href="#L-2180"><span class="linenos">2180</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2181"><a href="#L-2181"><span class="linenos">2181</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</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="sd"> Returns:</span>
+</span><span id="L-2184"><a href="#L-2184"><span class="linenos">2184</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2185"><a href="#L-2185"><span class="linenos">2185</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2186"><a href="#L-2186"><span class="linenos">2186</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-2187"><a href="#L-2187"><span class="linenos">2187</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-2188"><a href="#L-2188"><span class="linenos">2188</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-2189"><a href="#L-2189"><span class="linenos">2189</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2190"><a href="#L-2190"><span class="linenos">2190</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2191"><a href="#L-2191"><span class="linenos">2191</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-2192"><a href="#L-2192"><span class="linenos">2192</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2193"><a href="#L-2193"><span class="linenos">2193</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2194"><a href="#L-2194"><span class="linenos">2194</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-2195"><a href="#L-2195"><span class="linenos">2195</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
+</span><span id="L-2196"><a href="#L-2196"><span class="linenos">2196</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2197"><a href="#L-2197"><span class="linenos">2197</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2198"><a href="#L-2198"><span class="linenos">2198</span></a> <span class="p">)</span>
+</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">def</span> <span class="nf">order_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="L-2201"><a href="#L-2201"><span class="linenos">2201</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2202"><a href="#L-2202"><span class="linenos">2202</span></a><span class="sd"> Set the ORDER BY expression.</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="sd"> Example:</span>
+</span><span id="L-2205"><a href="#L-2205"><span class="linenos">2205</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).order_by(&quot;x DESC&quot;).sql()</span>
+</span><span id="L-2206"><a href="#L-2206"><span class="linenos">2206</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
+</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="sd"> Args:</span>
+</span><span id="L-2209"><a href="#L-2209"><span class="linenos">2209</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-2210"><a href="#L-2210"><span class="linenos">2210</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="L-2211"><a href="#L-2211"><span class="linenos">2211</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
+</span><span id="L-2212"><a href="#L-2212"><span class="linenos">2212</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="L-2213"><a href="#L-2213"><span class="linenos">2213</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="L-2214"><a href="#L-2214"><span class="linenos">2214</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-2215"><a href="#L-2215"><span class="linenos">2215</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2216"><a href="#L-2216"><span class="linenos">2216</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-2217"><a href="#L-2217"><span class="linenos">2217</span></a>
+</span><span id="L-2218"><a href="#L-2218"><span class="linenos">2218</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2219"><a href="#L-2219"><span class="linenos">2219</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2220"><a href="#L-2220"><span class="linenos">2220</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2221"><a href="#L-2221"><span class="linenos">2221</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-2222"><a href="#L-2222"><span class="linenos">2222</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2223"><a href="#L-2223"><span class="linenos">2223</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2224"><a href="#L-2224"><span class="linenos">2224</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;order&quot;</span><span class="p">,</span>
+</span><span id="L-2225"><a href="#L-2225"><span class="linenos">2225</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2226"><a href="#L-2226"><span class="linenos">2226</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2227"><a href="#L-2227"><span class="linenos">2227</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;ORDER BY&quot;</span><span class="p">,</span>
+</span><span id="L-2228"><a href="#L-2228"><span class="linenos">2228</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
+</span><span id="L-2229"><a href="#L-2229"><span class="linenos">2229</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2230"><a href="#L-2230"><span class="linenos">2230</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2231"><a href="#L-2231"><span class="linenos">2231</span></a> <span class="p">)</span>
+</span><span id="L-2232"><a href="#L-2232"><span class="linenos">2232</span></a>
+</span><span id="L-2233"><a href="#L-2233"><span class="linenos">2233</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="L-2234"><a href="#L-2234"><span class="linenos">2234</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2235"><a href="#L-2235"><span class="linenos">2235</span></a><span class="sd"> Set the SORT BY expression.</span>
+</span><span id="L-2236"><a href="#L-2236"><span class="linenos">2236</span></a>
+</span><span id="L-2237"><a href="#L-2237"><span class="linenos">2237</span></a><span class="sd"> Example:</span>
+</span><span id="L-2238"><a href="#L-2238"><span class="linenos">2238</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql()</span>
+</span><span id="L-2239"><a href="#L-2239"><span class="linenos">2239</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</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="sd"> Args:</span>
+</span><span id="L-2242"><a href="#L-2242"><span class="linenos">2242</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-2243"><a href="#L-2243"><span class="linenos">2243</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="L-2244"><a href="#L-2244"><span class="linenos">2244</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
+</span><span id="L-2245"><a href="#L-2245"><span class="linenos">2245</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="L-2246"><a href="#L-2246"><span class="linenos">2246</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="L-2247"><a href="#L-2247"><span class="linenos">2247</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-2248"><a href="#L-2248"><span class="linenos">2248</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2249"><a href="#L-2249"><span class="linenos">2249</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-2250"><a href="#L-2250"><span class="linenos">2250</span></a>
+</span><span id="L-2251"><a href="#L-2251"><span class="linenos">2251</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2252"><a href="#L-2252"><span class="linenos">2252</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2253"><a href="#L-2253"><span class="linenos">2253</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2254"><a href="#L-2254"><span class="linenos">2254</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-2255"><a href="#L-2255"><span class="linenos">2255</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2256"><a href="#L-2256"><span class="linenos">2256</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2257"><a href="#L-2257"><span class="linenos">2257</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-2258"><a href="#L-2258"><span class="linenos">2258</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2259"><a href="#L-2259"><span class="linenos">2259</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2260"><a href="#L-2260"><span class="linenos">2260</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-2261"><a href="#L-2261"><span class="linenos">2261</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
+</span><span id="L-2262"><a href="#L-2262"><span class="linenos">2262</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</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">opts</span><span class="p">,</span>
+</span><span id="L-2264"><a href="#L-2264"><span class="linenos">2264</span></a> <span class="p">)</span>
+</span><span id="L-2265"><a href="#L-2265"><span class="linenos">2265</span></a>
+</span><span id="L-2266"><a href="#L-2266"><span class="linenos">2266</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="L-2267"><a href="#L-2267"><span class="linenos">2267</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2268"><a href="#L-2268"><span class="linenos">2268</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
+</span><span id="L-2269"><a href="#L-2269"><span class="linenos">2269</span></a>
+</span><span id="L-2270"><a href="#L-2270"><span class="linenos">2270</span></a><span class="sd"> Example:</span>
+</span><span id="L-2271"><a href="#L-2271"><span class="linenos">2271</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql()</span>
+</span><span id="L-2272"><a href="#L-2272"><span class="linenos">2272</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
+</span><span id="L-2273"><a href="#L-2273"><span class="linenos">2273</span></a>
+</span><span id="L-2274"><a href="#L-2274"><span class="linenos">2274</span></a><span class="sd"> Args:</span>
+</span><span id="L-2275"><a href="#L-2275"><span class="linenos">2275</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-2276"><a href="#L-2276"><span class="linenos">2276</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="L-2277"><a href="#L-2277"><span class="linenos">2277</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
+</span><span id="L-2278"><a href="#L-2278"><span class="linenos">2278</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="L-2279"><a href="#L-2279"><span class="linenos">2279</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="L-2280"><a href="#L-2280"><span class="linenos">2280</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-2281"><a href="#L-2281"><span class="linenos">2281</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2282"><a href="#L-2282"><span class="linenos">2282</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-2283"><a href="#L-2283"><span class="linenos">2283</span></a>
+</span><span id="L-2284"><a href="#L-2284"><span class="linenos">2284</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2285"><a href="#L-2285"><span class="linenos">2285</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2286"><a href="#L-2286"><span class="linenos">2286</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2287"><a href="#L-2287"><span class="linenos">2287</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-2288"><a href="#L-2288"><span class="linenos">2288</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2289"><a href="#L-2289"><span class="linenos">2289</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2290"><a href="#L-2290"><span class="linenos">2290</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-2291"><a href="#L-2291"><span class="linenos">2291</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2292"><a href="#L-2292"><span class="linenos">2292</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2293"><a href="#L-2293"><span class="linenos">2293</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-2294"><a href="#L-2294"><span class="linenos">2294</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</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="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2297"><a href="#L-2297"><span class="linenos">2297</span></a> <span class="p">)</span>
+</span><span id="L-2298"><a href="#L-2298"><span class="linenos">2298</span></a>
+</span><span id="L-2299"><a href="#L-2299"><span class="linenos">2299</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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-2300"><a href="#L-2300"><span class="linenos">2300</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2301"><a href="#L-2301"><span class="linenos">2301</span></a><span class="sd"> Set the LIMIT expression.</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="sd"> Example:</span>
+</span><span id="L-2304"><a href="#L-2304"><span class="linenos">2304</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).limit(10).sql()</span>
+</span><span id="L-2305"><a href="#L-2305"><span class="linenos">2305</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
</span><span id="L-2306"><a href="#L-2306"><span class="linenos">2306</span></a>
-</span><span id="L-2307"><a href="#L-2307"><span class="linenos">2307</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2308"><a href="#L-2308"><span class="linenos">2308</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2309"><a href="#L-2309"><span class="linenos">2309</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2310"><a href="#L-2310"><span class="linenos">2310</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="L-2311"><a href="#L-2311"><span class="linenos">2311</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="L-2312"><a href="#L-2312"><span class="linenos">2312</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2313"><a href="#L-2313"><span class="linenos">2313</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;offset&quot;</span><span class="p">,</span>
-</span><span id="L-2314"><a href="#L-2314"><span class="linenos">2314</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
-</span><span id="L-2315"><a href="#L-2315"><span class="linenos">2315</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;OFFSET&quot;</span><span class="p">,</span>
-</span><span id="L-2316"><a href="#L-2316"><span class="linenos">2316</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2317"><a href="#L-2317"><span class="linenos">2317</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2318"><a href="#L-2318"><span class="linenos">2318</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2319"><a href="#L-2319"><span class="linenos">2319</span></a> <span class="p">)</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">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="L-2322"><a href="#L-2322"><span class="linenos">2322</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2323"><a href="#L-2323"><span class="linenos">2323</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><span id="L-2324"><a href="#L-2324"><span class="linenos">2324</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-2325"><a href="#L-2325"><span class="linenos">2325</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-2326"><a href="#L-2326"><span class="linenos">2326</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-2327"><a href="#L-2327"><span class="linenos">2327</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2328"><a href="#L-2328"><span class="linenos">2328</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2329"><a href="#L-2329"><span class="linenos">2329</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2330"><a href="#L-2330"><span class="linenos">2330</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
-</span><span id="L-2331"><a href="#L-2331"><span class="linenos">2331</span></a>
-</span><span id="L-2332"><a href="#L-2332"><span class="linenos">2332</span></a><span class="sd"> Example:</span>
-</span><span id="L-2333"><a href="#L-2333"><span class="linenos">2333</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
-</span><span id="L-2334"><a href="#L-2334"><span class="linenos">2334</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
-</span><span id="L-2335"><a href="#L-2335"><span class="linenos">2335</span></a>
-</span><span id="L-2336"><a href="#L-2336"><span class="linenos">2336</span></a><span class="sd"> Args:</span>
-</span><span id="L-2337"><a href="#L-2337"><span class="linenos">2337</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-2338"><a href="#L-2338"><span class="linenos">2338</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2339"><a href="#L-2339"><span class="linenos">2339</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-2340"><a href="#L-2340"><span class="linenos">2340</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-2341"><a href="#L-2341"><span class="linenos">2341</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-2342"><a href="#L-2342"><span class="linenos">2342</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2343"><a href="#L-2343"><span class="linenos">2343</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-2344"><a href="#L-2344"><span class="linenos">2344</span></a>
-</span><span id="L-2345"><a href="#L-2345"><span class="linenos">2345</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2346"><a href="#L-2346"><span class="linenos">2346</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2347"><a href="#L-2347"><span class="linenos">2347</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2348"><a href="#L-2348"><span class="linenos">2348</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-2349"><a href="#L-2349"><span class="linenos">2349</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2350"><a href="#L-2350"><span class="linenos">2350</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2351"><a href="#L-2351"><span class="linenos">2351</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-2352"><a href="#L-2352"><span class="linenos">2352</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2353"><a href="#L-2353"><span class="linenos">2353</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2354"><a href="#L-2354"><span class="linenos">2354</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2355"><a href="#L-2355"><span class="linenos">2355</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</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 class="k">def</span> <span class="nf">lateral</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="L-2359"><a href="#L-2359"><span class="linenos">2359</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2360"><a href="#L-2360"><span class="linenos">2360</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
-</span><span id="L-2361"><a href="#L-2361"><span class="linenos">2361</span></a>
-</span><span id="L-2362"><a href="#L-2362"><span class="linenos">2362</span></a><span class="sd"> Example:</span>
-</span><span id="L-2363"><a href="#L-2363"><span class="linenos">2363</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-2364"><a href="#L-2364"><span class="linenos">2364</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
-</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="sd"> Args:</span>
-</span><span id="L-2367"><a href="#L-2367"><span class="linenos">2367</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2368"><a href="#L-2368"><span class="linenos">2368</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2369"><a href="#L-2369"><span class="linenos">2369</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-2370"><a href="#L-2370"><span class="linenos">2370</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-2371"><a href="#L-2371"><span class="linenos">2371</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="L-2372"><a href="#L-2372"><span class="linenos">2372</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2373"><a href="#L-2373"><span class="linenos">2373</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-2374"><a href="#L-2374"><span class="linenos">2374</span></a>
-</span><span id="L-2375"><a href="#L-2375"><span class="linenos">2375</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2376"><a href="#L-2376"><span class="linenos">2376</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2377"><a href="#L-2377"><span class="linenos">2377</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2378"><a href="#L-2378"><span class="linenos">2378</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-2379"><a href="#L-2379"><span class="linenos">2379</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2380"><a href="#L-2380"><span class="linenos">2380</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2381"><a href="#L-2381"><span class="linenos">2381</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-2382"><a href="#L-2382"><span class="linenos">2382</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2383"><a href="#L-2383"><span class="linenos">2383</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
-</span><span id="L-2384"><a href="#L-2384"><span class="linenos">2384</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-2385"><a href="#L-2385"><span class="linenos">2385</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2386"><a href="#L-2386"><span class="linenos">2386</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2387"><a href="#L-2387"><span class="linenos">2387</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2388"><a href="#L-2388"><span class="linenos">2388</span></a> <span class="p">)</span>
-</span><span id="L-2389"><a href="#L-2389"><span class="linenos">2389</span></a>
-</span><span id="L-2390"><a href="#L-2390"><span class="linenos">2390</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
-</span><span id="L-2391"><a href="#L-2391"><span class="linenos">2391</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2392"><a href="#L-2392"><span class="linenos">2392</span></a> <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">on</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2394"><a href="#L-2394"><span class="linenos">2394</span></a> <span class="n">using</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2395"><a href="#L-2395"><span class="linenos">2395</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2396"><a href="#L-2396"><span class="linenos">2396</span></a> <span class="n">join_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2397"><a href="#L-2397"><span class="linenos">2397</span></a> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2398"><a href="#L-2398"><span class="linenos">2398</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2399"><a href="#L-2399"><span class="linenos">2399</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2400"><a href="#L-2400"><span class="linenos">2400</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2401"><a href="#L-2401"><span class="linenos">2401</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-2402"><a href="#L-2402"><span class="linenos">2402</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2403"><a href="#L-2403"><span class="linenos">2403</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
-</span><span id="L-2404"><a href="#L-2404"><span class="linenos">2404</span></a>
-</span><span id="L-2405"><a href="#L-2405"><span class="linenos">2405</span></a><span class="sd"> Example:</span>
-</span><span id="L-2406"><a href="#L-2406"><span class="linenos">2406</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-2407"><a href="#L-2407"><span class="linenos">2407</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</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="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-2410"><a href="#L-2410"><span class="linenos">2410</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</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 class="sd"> Use `join_type` to change the type of join:</span>
-</span><span id="L-2413"><a href="#L-2413"><span class="linenos">2413</span></a>
-</span><span id="L-2414"><a href="#L-2414"><span class="linenos">2414</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-2415"><a href="#L-2415"><span class="linenos">2415</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</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="sd"> Args:</span>
-</span><span id="L-2418"><a href="#L-2418"><span class="linenos">2418</span></a><span class="sd"> expression (str | Expression): the SQL code string to parse.</span>
-</span><span id="L-2419"><a href="#L-2419"><span class="linenos">2419</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2420"><a href="#L-2420"><span class="linenos">2420</span></a><span class="sd"> on (str | Expression): optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
-</span><span id="L-2421"><a href="#L-2421"><span class="linenos">2421</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2422"><a href="#L-2422"><span class="linenos">2422</span></a><span class="sd"> using (str | Expression): optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
-</span><span id="L-2423"><a href="#L-2423"><span class="linenos">2423</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2424"><a href="#L-2424"><span class="linenos">2424</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="L-2425"><a href="#L-2425"><span class="linenos">2425</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-2426"><a href="#L-2426"><span class="linenos">2426</span></a><span class="sd"> join_type (str): If set, alter the parsed join type</span>
-</span><span id="L-2427"><a href="#L-2427"><span class="linenos">2427</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="L-2428"><a href="#L-2428"><span class="linenos">2428</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2429"><a href="#L-2429"><span class="linenos">2429</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</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="sd"> Returns:</span>
-</span><span id="L-2432"><a href="#L-2432"><span class="linenos">2432</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2433"><a href="#L-2433"><span class="linenos">2433</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2434"><a href="#L-2434"><span class="linenos">2434</span></a> <span class="n">parse_args</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-2435"><a href="#L-2435"><span class="linenos">2435</span></a>
-</span><span id="L-2436"><a href="#L-2436"><span class="linenos">2436</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-2437"><a href="#L-2437"><span class="linenos">2437</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-2438"><a href="#L-2438"><span class="linenos">2438</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="L-2439"><a href="#L-2439"><span class="linenos">2439</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-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 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-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">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-2444"><a href="#L-2444"><span class="linenos">2444</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-2445"><a href="#L-2445"><span class="linenos">2445</span></a>
-</span><span id="L-2446"><a href="#L-2446"><span class="linenos">2446</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
-</span><span id="L-2447"><a href="#L-2447"><span class="linenos">2447</span></a> <span class="n">natural</span><span 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-2448"><a href="#L-2448"><span class="linenos">2448</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-2449"><a href="#L-2449"><span class="linenos">2449</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-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 class="n">natural</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-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">if</span> <span class="n">natural</span><span class="p">:</span>
-</span><span id="L-2454"><a href="#L-2454"><span class="linenos">2454</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;natural&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
-</span><span id="L-2455"><a href="#L-2455"><span class="linenos">2455</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
-</span><span id="L-2456"><a href="#L-2456"><span class="linenos">2456</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-2457"><a href="#L-2457"><span class="linenos">2457</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
-</span><span id="L-2458"><a href="#L-2458"><span class="linenos">2458</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-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 class="k">if</span> <span class="n">on</span><span class="p">:</span>
-</span><span id="L-2461"><a href="#L-2461"><span class="linenos">2461</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_collection</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="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-2462"><a href="#L-2462"><span class="linenos">2462</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-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 class="k">if</span> <span class="n">using</span><span class="p">:</span>
-</span><span id="L-2465"><a href="#L-2465"><span class="linenos">2465</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-2466"><a href="#L-2466"><span class="linenos">2466</span></a> <span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
-</span><span id="L-2467"><a href="#L-2467"><span class="linenos">2467</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
-</span><span id="L-2468"><a href="#L-2468"><span class="linenos">2468</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-2469"><a href="#L-2469"><span class="linenos">2469</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2470"><a href="#L-2470"><span class="linenos">2470</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2471"><a href="#L-2471"><span class="linenos">2471</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2472"><a href="#L-2472"><span class="linenos">2472</span></a> <span class="p">)</span>
-</span><span id="L-2473"><a href="#L-2473"><span class="linenos">2473</span></a>
-</span><span id="L-2474"><a href="#L-2474"><span class="linenos">2474</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
-</span><span id="L-2475"><a href="#L-2475"><span class="linenos">2475</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-2476"><a href="#L-2476"><span class="linenos">2476</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-2477"><a href="#L-2477"><span class="linenos">2477</span></a> <span class="n">join</span><span class="p">,</span>
-</span><span id="L-2478"><a href="#L-2478"><span class="linenos">2478</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2479"><a href="#L-2479"><span class="linenos">2479</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-2480"><a href="#L-2480"><span class="linenos">2480</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2481"><a href="#L-2481"><span class="linenos">2481</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2482"><a href="#L-2482"><span class="linenos">2482</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2483"><a href="#L-2483"><span class="linenos">2483</span></a> <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">def</span> <span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="L-2486"><a href="#L-2486"><span class="linenos">2486</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2487"><a href="#L-2487"><span class="linenos">2487</span></a><span class="sd"> Append to or set the WHERE expressions.</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="sd"> Example:</span>
-</span><span id="L-2490"><a href="#L-2490"><span class="linenos">2490</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-2491"><a href="#L-2491"><span class="linenos">2491</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-2307"><a href="#L-2307"><span class="linenos">2307</span></a><span class="sd"> Args:</span>
+</span><span id="L-2308"><a href="#L-2308"><span class="linenos">2308</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
+</span><span id="L-2309"><a href="#L-2309"><span class="linenos">2309</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="L-2310"><a href="#L-2310"><span class="linenos">2310</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="L-2311"><a href="#L-2311"><span class="linenos">2311</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="L-2312"><a href="#L-2312"><span class="linenos">2312</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-2313"><a href="#L-2313"><span class="linenos">2313</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2314"><a href="#L-2314"><span class="linenos">2314</span></a><span class="sd"> opts (kwargs): other options to use to parse the input 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"> Returns:</span>
+</span><span id="L-2317"><a href="#L-2317"><span class="linenos">2317</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2318"><a href="#L-2318"><span class="linenos">2318</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2319"><a href="#L-2319"><span class="linenos">2319</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="L-2320"><a href="#L-2320"><span class="linenos">2320</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="L-2321"><a href="#L-2321"><span class="linenos">2321</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2322"><a href="#L-2322"><span class="linenos">2322</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;limit&quot;</span><span class="p">,</span>
+</span><span id="L-2323"><a href="#L-2323"><span class="linenos">2323</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
+</span><span id="L-2324"><a href="#L-2324"><span class="linenos">2324</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LIMIT&quot;</span><span class="p">,</span>
+</span><span id="L-2325"><a href="#L-2325"><span class="linenos">2325</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2326"><a href="#L-2326"><span class="linenos">2326</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2327"><a href="#L-2327"><span class="linenos">2327</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2328"><a href="#L-2328"><span class="linenos">2328</span></a> <span class="p">)</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="k">def</span> <span class="nf">offset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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-2331"><a href="#L-2331"><span class="linenos">2331</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2332"><a href="#L-2332"><span class="linenos">2332</span></a><span class="sd"> Set the OFFSET expression.</span>
+</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="sd"> Example:</span>
+</span><span id="L-2335"><a href="#L-2335"><span class="linenos">2335</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).offset(10).sql()</span>
+</span><span id="L-2336"><a href="#L-2336"><span class="linenos">2336</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
+</span><span id="L-2337"><a href="#L-2337"><span class="linenos">2337</span></a>
+</span><span id="L-2338"><a href="#L-2338"><span class="linenos">2338</span></a><span class="sd"> Args:</span>
+</span><span id="L-2339"><a href="#L-2339"><span class="linenos">2339</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
+</span><span id="L-2340"><a href="#L-2340"><span class="linenos">2340</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="L-2341"><a href="#L-2341"><span class="linenos">2341</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
+</span><span id="L-2342"><a href="#L-2342"><span class="linenos">2342</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
+</span><span id="L-2343"><a href="#L-2343"><span class="linenos">2343</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-2344"><a href="#L-2344"><span class="linenos">2344</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2345"><a href="#L-2345"><span class="linenos">2345</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-2346"><a href="#L-2346"><span class="linenos">2346</span></a>
+</span><span id="L-2347"><a href="#L-2347"><span class="linenos">2347</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2348"><a href="#L-2348"><span class="linenos">2348</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2349"><a href="#L-2349"><span class="linenos">2349</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2350"><a href="#L-2350"><span class="linenos">2350</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="L-2351"><a href="#L-2351"><span class="linenos">2351</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="L-2352"><a href="#L-2352"><span class="linenos">2352</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2353"><a href="#L-2353"><span class="linenos">2353</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;offset&quot;</span><span class="p">,</span>
+</span><span id="L-2354"><a href="#L-2354"><span class="linenos">2354</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
+</span><span id="L-2355"><a href="#L-2355"><span class="linenos">2355</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;OFFSET&quot;</span><span class="p">,</span>
+</span><span id="L-2356"><a href="#L-2356"><span class="linenos">2356</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2357"><a href="#L-2357"><span class="linenos">2357</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2358"><a href="#L-2358"><span class="linenos">2358</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2359"><a href="#L-2359"><span class="linenos">2359</span></a> <span class="p">)</span>
+</span><span id="L-2360"><a href="#L-2360"><span class="linenos">2360</span></a>
+</span><span id="L-2361"><a href="#L-2361"><span class="linenos">2361</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="L-2362"><a href="#L-2362"><span class="linenos">2362</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2363"><a href="#L-2363"><span class="linenos">2363</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><span id="L-2364"><a href="#L-2364"><span class="linenos">2364</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-2365"><a href="#L-2365"><span class="linenos">2365</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-2366"><a href="#L-2366"><span class="linenos">2366</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-2367"><a href="#L-2367"><span class="linenos">2367</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2368"><a href="#L-2368"><span class="linenos">2368</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2369"><a href="#L-2369"><span class="linenos">2369</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2370"><a href="#L-2370"><span class="linenos">2370</span></a><span class="sd"> Append to or set the SELECT expressions.</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 class="sd"> Example:</span>
+</span><span id="L-2373"><a href="#L-2373"><span class="linenos">2373</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
+</span><span id="L-2374"><a href="#L-2374"><span class="linenos">2374</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
+</span><span id="L-2375"><a href="#L-2375"><span class="linenos">2375</span></a>
+</span><span id="L-2376"><a href="#L-2376"><span class="linenos">2376</span></a><span class="sd"> Args:</span>
+</span><span id="L-2377"><a href="#L-2377"><span class="linenos">2377</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2378"><a href="#L-2378"><span class="linenos">2378</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2379"><a href="#L-2379"><span class="linenos">2379</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2380"><a href="#L-2380"><span class="linenos">2380</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-2381"><a href="#L-2381"><span class="linenos">2381</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-2382"><a href="#L-2382"><span class="linenos">2382</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2383"><a href="#L-2383"><span class="linenos">2383</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</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="sd"> Returns:</span>
+</span><span id="L-2386"><a href="#L-2386"><span class="linenos">2386</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2387"><a href="#L-2387"><span class="linenos">2387</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2388"><a href="#L-2388"><span class="linenos">2388</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-2389"><a href="#L-2389"><span class="linenos">2389</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2390"><a href="#L-2390"><span class="linenos">2390</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2391"><a href="#L-2391"><span class="linenos">2391</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-2392"><a href="#L-2392"><span class="linenos">2392</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2393"><a href="#L-2393"><span class="linenos">2393</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2394"><a href="#L-2394"><span class="linenos">2394</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2395"><a href="#L-2395"><span class="linenos">2395</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2396"><a href="#L-2396"><span class="linenos">2396</span></a> <span class="p">)</span>
+</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="k">def</span> <span class="nf">lateral</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="L-2399"><a href="#L-2399"><span class="linenos">2399</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2400"><a href="#L-2400"><span class="linenos">2400</span></a><span class="sd"> Append to or set the LATERAL expressions.</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 class="sd"> Example:</span>
+</span><span id="L-2403"><a href="#L-2403"><span class="linenos">2403</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-2404"><a href="#L-2404"><span class="linenos">2404</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
+</span><span id="L-2405"><a href="#L-2405"><span class="linenos">2405</span></a>
+</span><span id="L-2406"><a href="#L-2406"><span class="linenos">2406</span></a><span class="sd"> Args:</span>
+</span><span id="L-2407"><a href="#L-2407"><span class="linenos">2407</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-2408"><a href="#L-2408"><span class="linenos">2408</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2409"><a href="#L-2409"><span class="linenos">2409</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="L-2410"><a href="#L-2410"><span class="linenos">2410</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-2411"><a href="#L-2411"><span class="linenos">2411</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="L-2412"><a href="#L-2412"><span class="linenos">2412</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2413"><a href="#L-2413"><span class="linenos">2413</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-2414"><a href="#L-2414"><span class="linenos">2414</span></a>
+</span><span id="L-2415"><a href="#L-2415"><span class="linenos">2415</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2416"><a href="#L-2416"><span class="linenos">2416</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2417"><a href="#L-2417"><span class="linenos">2417</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2418"><a href="#L-2418"><span class="linenos">2418</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-2419"><a href="#L-2419"><span class="linenos">2419</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2420"><a href="#L-2420"><span class="linenos">2420</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2421"><a href="#L-2421"><span class="linenos">2421</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-2422"><a href="#L-2422"><span class="linenos">2422</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2423"><a href="#L-2423"><span class="linenos">2423</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
+</span><span id="L-2424"><a href="#L-2424"><span class="linenos">2424</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-2425"><a href="#L-2425"><span class="linenos">2425</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2426"><a href="#L-2426"><span class="linenos">2426</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2427"><a href="#L-2427"><span class="linenos">2427</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2428"><a href="#L-2428"><span class="linenos">2428</span></a> <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 class="k">def</span> <span class="nf">join</span><span class="p">(</span>
+</span><span id="L-2431"><a href="#L-2431"><span class="linenos">2431</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2432"><a href="#L-2432"><span class="linenos">2432</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-2433"><a href="#L-2433"><span class="linenos">2433</span></a> <span class="n">on</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-2434"><a href="#L-2434"><span class="linenos">2434</span></a> <span class="n">using</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-2435"><a href="#L-2435"><span class="linenos">2435</span></a> <span class="n">append</span><span class="o">=</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 class="n">join_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-2437"><a href="#L-2437"><span class="linenos">2437</span></a> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-2438"><a href="#L-2438"><span class="linenos">2438</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-2439"><a href="#L-2439"><span class="linenos">2439</span></a> <span class="n">copy</span><span class="o">=</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 class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2441"><a href="#L-2441"><span class="linenos">2441</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-2442"><a href="#L-2442"><span class="linenos">2442</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2443"><a href="#L-2443"><span class="linenos">2443</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
+</span><span id="L-2444"><a href="#L-2444"><span class="linenos">2444</span></a>
+</span><span id="L-2445"><a href="#L-2445"><span class="linenos">2445</span></a><span class="sd"> Example:</span>
+</span><span id="L-2446"><a href="#L-2446"><span class="linenos">2446</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-2447"><a href="#L-2447"><span class="linenos">2447</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</span><span id="L-2448"><a href="#L-2448"><span class="linenos">2448</span></a>
+</span><span id="L-2449"><a href="#L-2449"><span class="linenos">2449</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-2450"><a href="#L-2450"><span class="linenos">2450</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
+</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 class="sd"> Use `join_type` to change the type of join:</span>
+</span><span id="L-2453"><a href="#L-2453"><span class="linenos">2453</span></a>
+</span><span id="L-2454"><a href="#L-2454"><span class="linenos">2454</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-2455"><a href="#L-2455"><span class="linenos">2455</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</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="sd"> Args:</span>
+</span><span id="L-2458"><a href="#L-2458"><span class="linenos">2458</span></a><span class="sd"> expression (str | Expression): the SQL code string to parse.</span>
+</span><span id="L-2459"><a href="#L-2459"><span class="linenos">2459</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2460"><a href="#L-2460"><span class="linenos">2460</span></a><span class="sd"> on (str | Expression): optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
+</span><span id="L-2461"><a href="#L-2461"><span class="linenos">2461</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2462"><a href="#L-2462"><span class="linenos">2462</span></a><span class="sd"> using (str | Expression): optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
+</span><span id="L-2463"><a href="#L-2463"><span class="linenos">2463</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2464"><a href="#L-2464"><span class="linenos">2464</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="L-2465"><a href="#L-2465"><span class="linenos">2465</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-2466"><a href="#L-2466"><span class="linenos">2466</span></a><span class="sd"> join_type (str): If set, alter the parsed join type</span>
+</span><span id="L-2467"><a href="#L-2467"><span class="linenos">2467</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="L-2468"><a href="#L-2468"><span class="linenos">2468</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2469"><a href="#L-2469"><span class="linenos">2469</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-2470"><a href="#L-2470"><span class="linenos">2470</span></a>
+</span><span id="L-2471"><a href="#L-2471"><span class="linenos">2471</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2472"><a href="#L-2472"><span class="linenos">2472</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2473"><a href="#L-2473"><span class="linenos">2473</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2474"><a href="#L-2474"><span class="linenos">2474</span></a> <span class="n">parse_args</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-2475"><a href="#L-2475"><span class="linenos">2475</span></a>
+</span><span id="L-2476"><a href="#L-2476"><span class="linenos">2476</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="L-2477"><a href="#L-2477"><span class="linenos">2477</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-2478"><a href="#L-2478"><span class="linenos">2478</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="L-2479"><a href="#L-2479"><span class="linenos">2479</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-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="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-2482"><a href="#L-2482"><span class="linenos">2482</span></a>
+</span><span id="L-2483"><a href="#L-2483"><span class="linenos">2483</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-2484"><a href="#L-2484"><span class="linenos">2484</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-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">if</span> <span class="n">join_type</span><span class="p">:</span>
+</span><span id="L-2487"><a href="#L-2487"><span class="linenos">2487</span></a> <span class="n">natural</span><span 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-2488"><a href="#L-2488"><span class="linenos">2488</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-2489"><a href="#L-2489"><span class="linenos">2489</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-2490"><a href="#L-2490"><span class="linenos">2490</span></a>
+</span><span id="L-2491"><a href="#L-2491"><span class="linenos">2491</span></a> <span class="n">natural</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-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="sd"> Args:</span>
-</span><span id="L-2494"><a href="#L-2494"><span class="linenos">2494</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2495"><a href="#L-2495"><span class="linenos">2495</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2496"><a href="#L-2496"><span class="linenos">2496</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="L-2497"><a href="#L-2497"><span class="linenos">2497</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="L-2498"><a href="#L-2498"><span class="linenos">2498</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-2499"><a href="#L-2499"><span class="linenos">2499</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="L-2500"><a href="#L-2500"><span class="linenos">2500</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2501"><a href="#L-2501"><span class="linenos">2501</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-2502"><a href="#L-2502"><span class="linenos">2502</span></a>
-</span><span id="L-2503"><a href="#L-2503"><span class="linenos">2503</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2504"><a href="#L-2504"><span class="linenos">2504</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2505"><a href="#L-2505"><span class="linenos">2505</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2506"><a href="#L-2506"><span class="linenos">2506</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-2507"><a href="#L-2507"><span class="linenos">2507</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2508"><a href="#L-2508"><span class="linenos">2508</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2509"><a href="#L-2509"><span class="linenos">2509</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-2510"><a href="#L-2510"><span class="linenos">2510</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2511"><a href="#L-2511"><span class="linenos">2511</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="L-2512"><a href="#L-2512"><span class="linenos">2512</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2513"><a href="#L-2513"><span class="linenos">2513</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2514"><a href="#L-2514"><span class="linenos">2514</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2515"><a href="#L-2515"><span class="linenos">2515</span></a> <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">def</span> <span class="nf">having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="L-2518"><a href="#L-2518"><span class="linenos">2518</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2519"><a href="#L-2519"><span class="linenos">2519</span></a><span class="sd"> Append to or set the HAVING expressions.</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="sd"> Example:</span>
-</span><span id="L-2522"><a href="#L-2522"><span class="linenos">2522</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-2523"><a href="#L-2523"><span class="linenos">2523</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-2493"><a href="#L-2493"><span class="linenos">2493</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span>
+</span><span id="L-2494"><a href="#L-2494"><span class="linenos">2494</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;natural&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
+</span><span id="L-2495"><a href="#L-2495"><span class="linenos">2495</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
+</span><span id="L-2496"><a href="#L-2496"><span class="linenos">2496</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-2497"><a href="#L-2497"><span class="linenos">2497</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
+</span><span id="L-2498"><a href="#L-2498"><span class="linenos">2498</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-2499"><a href="#L-2499"><span class="linenos">2499</span></a>
+</span><span id="L-2500"><a href="#L-2500"><span class="linenos">2500</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
+</span><span id="L-2501"><a href="#L-2501"><span class="linenos">2501</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_collection</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="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-2502"><a href="#L-2502"><span class="linenos">2502</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-2503"><a href="#L-2503"><span class="linenos">2503</span></a>
+</span><span id="L-2504"><a href="#L-2504"><span class="linenos">2504</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
+</span><span id="L-2505"><a href="#L-2505"><span class="linenos">2505</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-2506"><a href="#L-2506"><span class="linenos">2506</span></a> <span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
+</span><span id="L-2507"><a href="#L-2507"><span class="linenos">2507</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
+</span><span id="L-2508"><a href="#L-2508"><span class="linenos">2508</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-2509"><a href="#L-2509"><span class="linenos">2509</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2510"><a href="#L-2510"><span class="linenos">2510</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2511"><a href="#L-2511"><span class="linenos">2511</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2512"><a href="#L-2512"><span class="linenos">2512</span></a> <span class="p">)</span>
+</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">if</span> <span class="n">join_alias</span><span class="p">:</span>
+</span><span id="L-2515"><a href="#L-2515"><span class="linenos">2515</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-2516"><a href="#L-2516"><span class="linenos">2516</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-2517"><a href="#L-2517"><span class="linenos">2517</span></a> <span class="n">join</span><span class="p">,</span>
+</span><span id="L-2518"><a href="#L-2518"><span class="linenos">2518</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2519"><a href="#L-2519"><span class="linenos">2519</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-2520"><a href="#L-2520"><span class="linenos">2520</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2521"><a href="#L-2521"><span class="linenos">2521</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2522"><a href="#L-2522"><span class="linenos">2522</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2523"><a href="#L-2523"><span class="linenos">2523</span></a> <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 class="sd"> Args:</span>
-</span><span id="L-2526"><a href="#L-2526"><span class="linenos">2526</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-2527"><a href="#L-2527"><span class="linenos">2527</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2528"><a href="#L-2528"><span class="linenos">2528</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="L-2529"><a href="#L-2529"><span class="linenos">2529</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="L-2530"><a href="#L-2530"><span class="linenos">2530</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-2531"><a href="#L-2531"><span class="linenos">2531</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="L-2532"><a href="#L-2532"><span class="linenos">2532</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2533"><a href="#L-2533"><span class="linenos">2533</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</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="sd"> Returns:</span>
-</span><span id="L-2536"><a href="#L-2536"><span class="linenos">2536</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2537"><a href="#L-2537"><span class="linenos">2537</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2538"><a href="#L-2538"><span class="linenos">2538</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-2539"><a href="#L-2539"><span class="linenos">2539</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2540"><a href="#L-2540"><span class="linenos">2540</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2541"><a href="#L-2541"><span class="linenos">2541</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-2542"><a href="#L-2542"><span class="linenos">2542</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2543"><a href="#L-2543"><span class="linenos">2543</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
-</span><span id="L-2544"><a href="#L-2544"><span class="linenos">2544</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2545"><a href="#L-2545"><span class="linenos">2545</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2546"><a href="#L-2546"><span class="linenos">2546</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2547"><a href="#L-2547"><span class="linenos">2547</span></a> <span class="p">)</span>
-</span><span id="L-2548"><a href="#L-2548"><span class="linenos">2548</span></a>
-</span><span id="L-2549"><a href="#L-2549"><span class="linenos">2549</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="L-2550"><a href="#L-2550"><span class="linenos">2550</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-2551"><a href="#L-2551"><span class="linenos">2551</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2552"><a href="#L-2552"><span class="linenos">2552</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2553"><a href="#L-2553"><span class="linenos">2553</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-2554"><a href="#L-2554"><span class="linenos">2554</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2555"><a href="#L-2555"><span class="linenos">2555</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
-</span><span id="L-2556"><a href="#L-2556"><span class="linenos">2556</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2557"><a href="#L-2557"><span class="linenos">2557</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2558"><a href="#L-2558"><span class="linenos">2558</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2559"><a href="#L-2559"><span class="linenos">2559</span></a> <span class="p">)</span>
+</span><span id="L-2525"><a href="#L-2525"><span class="linenos">2525</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="L-2526"><a href="#L-2526"><span class="linenos">2526</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2527"><a href="#L-2527"><span class="linenos">2527</span></a><span class="sd"> Append to or set the WHERE expressions.</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 class="sd"> Example:</span>
+</span><span id="L-2530"><a href="#L-2530"><span class="linenos">2530</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-2531"><a href="#L-2531"><span class="linenos">2531</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-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 class="sd"> Args:</span>
+</span><span id="L-2534"><a href="#L-2534"><span class="linenos">2534</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-2535"><a href="#L-2535"><span class="linenos">2535</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2536"><a href="#L-2536"><span class="linenos">2536</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="L-2537"><a href="#L-2537"><span class="linenos">2537</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="L-2538"><a href="#L-2538"><span class="linenos">2538</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-2539"><a href="#L-2539"><span class="linenos">2539</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="L-2540"><a href="#L-2540"><span class="linenos">2540</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2541"><a href="#L-2541"><span class="linenos">2541</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
+</span><span id="L-2544"><a href="#L-2544"><span class="linenos">2544</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2545"><a href="#L-2545"><span class="linenos">2545</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2546"><a href="#L-2546"><span class="linenos">2546</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-2547"><a href="#L-2547"><span class="linenos">2547</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2548"><a href="#L-2548"><span class="linenos">2548</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2549"><a href="#L-2549"><span class="linenos">2549</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-2550"><a href="#L-2550"><span class="linenos">2550</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2551"><a href="#L-2551"><span class="linenos">2551</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
+</span><span id="L-2552"><a href="#L-2552"><span class="linenos">2552</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2553"><a href="#L-2553"><span class="linenos">2553</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2554"><a href="#L-2554"><span class="linenos">2554</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2555"><a href="#L-2555"><span class="linenos">2555</span></a> <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 class="k">def</span> <span class="nf">having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="L-2558"><a href="#L-2558"><span class="linenos">2558</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2559"><a href="#L-2559"><span class="linenos">2559</span></a><span class="sd"> Append to or set the HAVING expressions.</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 class="k">def</span> <span class="nf">qualify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="L-2562"><a href="#L-2562"><span class="linenos">2562</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-2563"><a href="#L-2563"><span class="linenos">2563</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2564"><a href="#L-2564"><span class="linenos">2564</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2565"><a href="#L-2565"><span class="linenos">2565</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-2566"><a href="#L-2566"><span class="linenos">2566</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2567"><a href="#L-2567"><span class="linenos">2567</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
-</span><span id="L-2568"><a href="#L-2568"><span class="linenos">2568</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2569"><a href="#L-2569"><span class="linenos">2569</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2570"><a href="#L-2570"><span class="linenos">2570</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2571"><a href="#L-2571"><span class="linenos">2571</span></a> <span class="p">)</span>
-</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">def</span> <span class="nf">distinct</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</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-2574"><a href="#L-2574"><span class="linenos">2574</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2575"><a href="#L-2575"><span class="linenos">2575</span></a><span class="sd"> Set the OFFSET expression.</span>
-</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="sd"> Example:</span>
-</span><span id="L-2578"><a href="#L-2578"><span class="linenos">2578</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
-</span><span id="L-2579"><a href="#L-2579"><span class="linenos">2579</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
-</span><span id="L-2580"><a href="#L-2580"><span class="linenos">2580</span></a>
-</span><span id="L-2581"><a href="#L-2581"><span class="linenos">2581</span></a><span class="sd"> Args:</span>
-</span><span id="L-2582"><a href="#L-2582"><span class="linenos">2582</span></a><span class="sd"> distinct (bool): whether the Select should be distinct</span>
-</span><span id="L-2583"><a href="#L-2583"><span class="linenos">2583</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2584"><a href="#L-2584"><span class="linenos">2584</span></a>
-</span><span id="L-2585"><a href="#L-2585"><span class="linenos">2585</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2586"><a href="#L-2586"><span class="linenos">2586</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-2587"><a href="#L-2587"><span class="linenos">2587</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2588"><a href="#L-2588"><span class="linenos">2588</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-2589"><a href="#L-2589"><span class="linenos">2589</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="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-2590"><a href="#L-2590"><span class="linenos">2590</span></a> <span class="k">return</span> <span class="n">instance</span>
-</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">def</span> <span class="nf">ctas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Create</span><span class="p">:</span>
-</span><span id="L-2593"><a href="#L-2593"><span class="linenos">2593</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2594"><a href="#L-2594"><span class="linenos">2594</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
-</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="sd"> Example:</span>
-</span><span id="L-2597"><a href="#L-2597"><span class="linenos">2597</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-2598"><a href="#L-2598"><span class="linenos">2598</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
-</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="sd"> Args:</span>
-</span><span id="L-2601"><a href="#L-2601"><span class="linenos">2601</span></a><span class="sd"> table (str | Expression): the SQL code string to parse as the table name.</span>
-</span><span id="L-2602"><a href="#L-2602"><span class="linenos">2602</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2603"><a href="#L-2603"><span class="linenos">2603</span></a><span class="sd"> properties (dict): an optional mapping of table properties</span>
-</span><span id="L-2604"><a href="#L-2604"><span class="linenos">2604</span></a><span class="sd"> dialect (str): the dialect used to parse the input table.</span>
-</span><span id="L-2605"><a href="#L-2605"><span class="linenos">2605</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2606"><a href="#L-2606"><span class="linenos">2606</span></a><span class="sd"> opts (kwargs): other options to use to parse the input table.</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="sd"> Returns:</span>
-</span><span id="L-2609"><a href="#L-2609"><span class="linenos">2609</span></a><span class="sd"> Create: the CREATE TABLE AS expression</span>
-</span><span id="L-2610"><a href="#L-2610"><span class="linenos">2610</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2611"><a href="#L-2611"><span class="linenos">2611</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-2612"><a href="#L-2612"><span class="linenos">2612</span></a> <span class="n">table_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-2613"><a href="#L-2613"><span class="linenos">2613</span></a> <span class="n">table</span><span class="p">,</span>
-</span><span id="L-2614"><a href="#L-2614"><span class="linenos">2614</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
-</span><span id="L-2615"><a href="#L-2615"><span class="linenos">2615</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2616"><a href="#L-2616"><span class="linenos">2616</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2617"><a href="#L-2617"><span class="linenos">2617</span></a> <span class="p">)</span>
-</span><span id="L-2618"><a href="#L-2618"><span class="linenos">2618</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="L-2619"><a href="#L-2619"><span class="linenos">2619</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
-</span><span id="L-2620"><a href="#L-2620"><span class="linenos">2620</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-2621"><a href="#L-2621"><span class="linenos">2621</span></a>
-</span><span id="L-2622"><a href="#L-2622"><span class="linenos">2622</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
-</span><span id="L-2623"><a href="#L-2623"><span class="linenos">2623</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-2624"><a href="#L-2624"><span class="linenos">2624</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-2625"><a href="#L-2625"><span class="linenos">2625</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="L-2626"><a href="#L-2626"><span class="linenos">2626</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-2627"><a href="#L-2627"><span class="linenos">2627</span></a> <span class="p">)</span>
-</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">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-2630"><a href="#L-2630"><span class="linenos">2630</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2631"><a href="#L-2631"><span class="linenos">2631</span></a><span class="sd"> Set the locking read mode for this expression.</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="sd"> Examples:</span>
-</span><span id="L-2634"><a href="#L-2634"><span class="linenos">2634</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-2635"><a href="#L-2635"><span class="linenos">2635</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
-</span><span id="L-2636"><a href="#L-2636"><span class="linenos">2636</span></a>
-</span><span id="L-2637"><a href="#L-2637"><span class="linenos">2637</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-2638"><a href="#L-2638"><span class="linenos">2638</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
+</span><span id="L-2561"><a href="#L-2561"><span class="linenos">2561</span></a><span class="sd"> Example:</span>
+</span><span id="L-2562"><a href="#L-2562"><span class="linenos">2562</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-2563"><a href="#L-2563"><span class="linenos">2563</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-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 class="sd"> Args:</span>
+</span><span id="L-2566"><a href="#L-2566"><span class="linenos">2566</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-2567"><a href="#L-2567"><span class="linenos">2567</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2568"><a href="#L-2568"><span class="linenos">2568</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="L-2569"><a href="#L-2569"><span class="linenos">2569</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="L-2570"><a href="#L-2570"><span class="linenos">2570</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-2571"><a href="#L-2571"><span class="linenos">2571</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="L-2572"><a href="#L-2572"><span class="linenos">2572</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2573"><a href="#L-2573"><span class="linenos">2573</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-2574"><a href="#L-2574"><span class="linenos">2574</span></a>
+</span><span id="L-2575"><a href="#L-2575"><span class="linenos">2575</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2576"><a href="#L-2576"><span class="linenos">2576</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2577"><a href="#L-2577"><span class="linenos">2577</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2578"><a href="#L-2578"><span class="linenos">2578</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-2579"><a href="#L-2579"><span class="linenos">2579</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2580"><a href="#L-2580"><span class="linenos">2580</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2581"><a href="#L-2581"><span class="linenos">2581</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-2582"><a href="#L-2582"><span class="linenos">2582</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2583"><a href="#L-2583"><span class="linenos">2583</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
+</span><span id="L-2584"><a href="#L-2584"><span class="linenos">2584</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2585"><a href="#L-2585"><span class="linenos">2585</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2586"><a href="#L-2586"><span class="linenos">2586</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2587"><a href="#L-2587"><span class="linenos">2587</span></a> <span class="p">)</span>
+</span><span id="L-2588"><a href="#L-2588"><span class="linenos">2588</span></a>
+</span><span id="L-2589"><a href="#L-2589"><span class="linenos">2589</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="L-2590"><a href="#L-2590"><span class="linenos">2590</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-2591"><a href="#L-2591"><span class="linenos">2591</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2592"><a href="#L-2592"><span class="linenos">2592</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2593"><a href="#L-2593"><span class="linenos">2593</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-2594"><a href="#L-2594"><span class="linenos">2594</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2595"><a href="#L-2595"><span class="linenos">2595</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
+</span><span id="L-2596"><a href="#L-2596"><span class="linenos">2596</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2597"><a href="#L-2597"><span class="linenos">2597</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2598"><a href="#L-2598"><span class="linenos">2598</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2599"><a href="#L-2599"><span class="linenos">2599</span></a> <span class="p">)</span>
+</span><span id="L-2600"><a href="#L-2600"><span class="linenos">2600</span></a>
+</span><span id="L-2601"><a href="#L-2601"><span class="linenos">2601</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="L-2602"><a href="#L-2602"><span class="linenos">2602</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-2603"><a href="#L-2603"><span class="linenos">2603</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2604"><a href="#L-2604"><span class="linenos">2604</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2605"><a href="#L-2605"><span class="linenos">2605</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-2606"><a href="#L-2606"><span class="linenos">2606</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2607"><a href="#L-2607"><span class="linenos">2607</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
+</span><span id="L-2608"><a href="#L-2608"><span class="linenos">2608</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2609"><a href="#L-2609"><span class="linenos">2609</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2610"><a href="#L-2610"><span class="linenos">2610</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2611"><a href="#L-2611"><span class="linenos">2611</span></a> <span class="p">)</span>
+</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">def</span> <span class="nf">distinct</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</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-2614"><a href="#L-2614"><span class="linenos">2614</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2615"><a href="#L-2615"><span class="linenos">2615</span></a><span class="sd"> Set the OFFSET expression.</span>
+</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="sd"> Example:</span>
+</span><span id="L-2618"><a href="#L-2618"><span class="linenos">2618</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
+</span><span id="L-2619"><a href="#L-2619"><span class="linenos">2619</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
+</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="sd"> Args:</span>
+</span><span id="L-2622"><a href="#L-2622"><span class="linenos">2622</span></a><span class="sd"> distinct (bool): whether the Select should be distinct</span>
+</span><span id="L-2623"><a href="#L-2623"><span class="linenos">2623</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</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="sd"> Returns:</span>
+</span><span id="L-2626"><a href="#L-2626"><span class="linenos">2626</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-2627"><a href="#L-2627"><span class="linenos">2627</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2628"><a href="#L-2628"><span class="linenos">2628</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-2629"><a href="#L-2629"><span class="linenos">2629</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="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-2630"><a href="#L-2630"><span class="linenos">2630</span></a> <span class="k">return</span> <span class="n">instance</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">def</span> <span class="nf">ctas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Create</span><span class="p">:</span>
+</span><span id="L-2633"><a href="#L-2633"><span class="linenos">2633</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2634"><a href="#L-2634"><span class="linenos">2634</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
+</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="sd"> Example:</span>
+</span><span id="L-2637"><a href="#L-2637"><span class="linenos">2637</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-2638"><a href="#L-2638"><span class="linenos">2638</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
</span><span id="L-2639"><a href="#L-2639"><span class="linenos">2639</span></a>
</span><span id="L-2640"><a href="#L-2640"><span class="linenos">2640</span></a><span class="sd"> Args:</span>
-</span><span id="L-2641"><a href="#L-2641"><span class="linenos">2641</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-2642"><a href="#L-2642"><span class="linenos">2642</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</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="sd"> Returns:</span>
-</span><span id="L-2645"><a href="#L-2645"><span class="linenos">2645</span></a><span class="sd"> The modified expression.</span>
-</span><span id="L-2646"><a href="#L-2646"><span class="linenos">2646</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2641"><a href="#L-2641"><span class="linenos">2641</span></a><span class="sd"> table (str | Expression): the SQL code string to parse as the table name.</span>
+</span><span id="L-2642"><a href="#L-2642"><span class="linenos">2642</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2643"><a href="#L-2643"><span class="linenos">2643</span></a><span class="sd"> properties (dict): an optional mapping of table properties</span>
+</span><span id="L-2644"><a href="#L-2644"><span class="linenos">2644</span></a><span class="sd"> dialect (str): the dialect used to parse the input table.</span>
+</span><span id="L-2645"><a href="#L-2645"><span class="linenos">2645</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2646"><a href="#L-2646"><span class="linenos">2646</span></a><span class="sd"> opts (kwargs): other options to use to parse the input table.</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 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-2649"><a href="#L-2649"><span class="linenos">2649</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;lock&quot;</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-2650"><a href="#L-2650"><span class="linenos">2650</span></a>
-</span><span id="L-2651"><a href="#L-2651"><span class="linenos">2651</span></a> <span class="k">return</span> <span class="n">inst</span>
-</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="nd">@property</span>
-</span><span id="L-2654"><a href="#L-2654"><span class="linenos">2654</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-2655"><a href="#L-2655"><span class="linenos">2655</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-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="nd">@property</span>
-</span><span id="L-2658"><a href="#L-2658"><span class="linenos">2658</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-2659"><a href="#L-2659"><span class="linenos">2659</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-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="nd">@property</span>
-</span><span id="L-2662"><a href="#L-2662"><span class="linenos">2662</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-2663"><a href="#L-2663"><span class="linenos">2663</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-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">Subquery</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Unionable</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><span id="L-2668"><a href="#L-2668"><span class="linenos">2668</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-2669"><a href="#L-2669"><span class="linenos">2669</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-2670"><a href="#L-2670"><span class="linenos">2670</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-2671"><a href="#L-2671"><span class="linenos">2671</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="L-2672"><a href="#L-2672"><span class="linenos">2672</span></a> <span class="p">}</span>
-</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">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-2675"><a href="#L-2675"><span class="linenos">2675</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2676"><a href="#L-2676"><span class="linenos">2676</span></a><span class="sd"> Returns the first non subquery.</span>
-</span><span id="L-2677"><a href="#L-2677"><span class="linenos">2677</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2678"><a href="#L-2678"><span class="linenos">2678</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-2679"><a href="#L-2679"><span class="linenos">2679</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-2680"><a href="#L-2680"><span class="linenos">2680</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-2681"><a href="#L-2681"><span class="linenos">2681</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="L-2682"><a href="#L-2682"><span class="linenos">2682</span></a>
-</span><span id="L-2683"><a href="#L-2683"><span class="linenos">2683</span></a> <span class="nd">@property</span>
-</span><span id="L-2684"><a href="#L-2684"><span class="linenos">2684</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-2685"><a href="#L-2685"><span class="linenos">2685</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-2686"><a href="#L-2686"><span class="linenos">2686</span></a>
-</span><span id="L-2687"><a href="#L-2687"><span class="linenos">2687</span></a> <span class="nd">@property</span>
-</span><span id="L-2688"><a href="#L-2688"><span class="linenos">2688</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-2689"><a href="#L-2689"><span class="linenos">2689</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-2648"><a href="#L-2648"><span class="linenos">2648</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2649"><a href="#L-2649"><span class="linenos">2649</span></a><span class="sd"> Create: the CREATE TABLE AS expression</span>
+</span><span id="L-2650"><a href="#L-2650"><span class="linenos">2650</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2651"><a href="#L-2651"><span class="linenos">2651</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-2652"><a href="#L-2652"><span class="linenos">2652</span></a> <span class="n">table_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-2653"><a href="#L-2653"><span class="linenos">2653</span></a> <span class="n">table</span><span class="p">,</span>
+</span><span id="L-2654"><a href="#L-2654"><span class="linenos">2654</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
+</span><span id="L-2655"><a href="#L-2655"><span class="linenos">2655</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2656"><a href="#L-2656"><span class="linenos">2656</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2657"><a href="#L-2657"><span class="linenos">2657</span></a> <span class="p">)</span>
+</span><span id="L-2658"><a href="#L-2658"><span class="linenos">2658</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="L-2659"><a href="#L-2659"><span class="linenos">2659</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
+</span><span id="L-2660"><a href="#L-2660"><span class="linenos">2660</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-2661"><a href="#L-2661"><span class="linenos">2661</span></a>
+</span><span id="L-2662"><a href="#L-2662"><span class="linenos">2662</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
+</span><span id="L-2663"><a href="#L-2663"><span class="linenos">2663</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-2664"><a href="#L-2664"><span class="linenos">2664</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-2665"><a href="#L-2665"><span class="linenos">2665</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="L-2666"><a href="#L-2666"><span class="linenos">2666</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-2667"><a href="#L-2667"><span class="linenos">2667</span></a> <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 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-2670"><a href="#L-2670"><span class="linenos">2670</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2671"><a href="#L-2671"><span class="linenos">2671</span></a><span class="sd"> Set the locking read mode for this expression.</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 class="sd"> Examples:</span>
+</span><span id="L-2674"><a href="#L-2674"><span class="linenos">2674</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-2675"><a href="#L-2675"><span class="linenos">2675</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</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 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-2678"><a href="#L-2678"><span class="linenos">2678</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
+</span><span id="L-2679"><a href="#L-2679"><span class="linenos">2679</span></a>
+</span><span id="L-2680"><a href="#L-2680"><span class="linenos">2680</span></a><span class="sd"> Args:</span>
+</span><span id="L-2681"><a href="#L-2681"><span class="linenos">2681</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-2682"><a href="#L-2682"><span class="linenos">2682</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2683"><a href="#L-2683"><span class="linenos">2683</span></a>
+</span><span id="L-2684"><a href="#L-2684"><span class="linenos">2684</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2685"><a href="#L-2685"><span class="linenos">2685</span></a><span class="sd"> The modified expression.</span>
+</span><span id="L-2686"><a href="#L-2686"><span class="linenos">2686</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2687"><a href="#L-2687"><span class="linenos">2687</span></a>
+</span><span id="L-2688"><a href="#L-2688"><span class="linenos">2688</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-2689"><a href="#L-2689"><span class="linenos">2689</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;lock&quot;</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-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><span id="L-2692"><a href="#L-2692"><span class="linenos">2692</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-2693"><a href="#L-2693"><span class="linenos">2693</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2694"><a href="#L-2694"><span class="linenos">2694</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-2695"><a href="#L-2695"><span class="linenos">2695</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-2696"><a href="#L-2696"><span class="linenos">2696</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-2697"><a href="#L-2697"><span class="linenos">2697</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-2698"><a href="#L-2698"><span class="linenos">2698</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-2699"><a href="#L-2699"><span class="linenos">2699</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-2700"><a href="#L-2700"><span class="linenos">2700</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-2701"><a href="#L-2701"><span class="linenos">2701</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-2702"><a href="#L-2702"><span class="linenos">2702</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-2703"><a href="#L-2703"><span class="linenos">2703</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-2704"><a href="#L-2704"><span class="linenos">2704</span></a> <span class="p">}</span>
+</span><span id="L-2691"><a href="#L-2691"><span class="linenos">2691</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="L-2692"><a href="#L-2692"><span class="linenos">2692</span></a>
+</span><span id="L-2693"><a href="#L-2693"><span class="linenos">2693</span></a> <span class="nd">@property</span>
+</span><span id="L-2694"><a href="#L-2694"><span class="linenos">2694</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-2695"><a href="#L-2695"><span class="linenos">2695</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-2696"><a href="#L-2696"><span class="linenos">2696</span></a>
+</span><span id="L-2697"><a href="#L-2697"><span class="linenos">2697</span></a> <span class="nd">@property</span>
+</span><span id="L-2698"><a href="#L-2698"><span class="linenos">2698</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-2699"><a href="#L-2699"><span class="linenos">2699</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-2700"><a href="#L-2700"><span class="linenos">2700</span></a>
+</span><span id="L-2701"><a href="#L-2701"><span class="linenos">2701</span></a> <span class="nd">@property</span>
+</span><span id="L-2702"><a href="#L-2702"><span class="linenos">2702</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-2703"><a href="#L-2703"><span class="linenos">2703</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-2704"><a href="#L-2704"><span class="linenos">2704</span></a>
</span><span id="L-2705"><a href="#L-2705"><span class="linenos">2705</span></a>
-</span><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">Tag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2708"><a href="#L-2708"><span class="linenos">2708</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-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="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2711"><a href="#L-2711"><span class="linenos">2711</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-2712"><a href="#L-2712"><span class="linenos">2712</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-2713"><a href="#L-2713"><span class="linenos">2713</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-2714"><a href="#L-2714"><span class="linenos">2714</span></a> <span class="p">}</span>
-</span><span id="L-2715"><a href="#L-2715"><span class="linenos">2715</span></a>
-</span><span id="L-2716"><a href="#L-2716"><span class="linenos">2716</span></a>
-</span><span id="L-2717"><a href="#L-2717"><span class="linenos">2717</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-2718"><a href="#L-2718"><span class="linenos">2718</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2719"><a href="#L-2719"><span class="linenos">2719</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-2720"><a href="#L-2720"><span class="linenos">2720</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-2721"><a href="#L-2721"><span class="linenos">2721</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-2722"><a href="#L-2722"><span class="linenos">2722</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2723"><a href="#L-2723"><span class="linenos">2723</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2724"><a href="#L-2724"><span class="linenos">2724</span></a> <span class="p">}</span>
-</span><span id="L-2725"><a href="#L-2725"><span class="linenos">2725</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">Subquery</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Unionable</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><span id="L-2708"><a href="#L-2708"><span class="linenos">2708</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-2709"><a href="#L-2709"><span class="linenos">2709</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-2710"><a href="#L-2710"><span class="linenos">2710</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-2711"><a href="#L-2711"><span class="linenos">2711</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="L-2712"><a href="#L-2712"><span class="linenos">2712</span></a> <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">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-2715"><a href="#L-2715"><span class="linenos">2715</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2716"><a href="#L-2716"><span class="linenos">2716</span></a><span class="sd"> Returns the first non subquery.</span>
+</span><span id="L-2717"><a href="#L-2717"><span class="linenos">2717</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2718"><a href="#L-2718"><span class="linenos">2718</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-2719"><a href="#L-2719"><span class="linenos">2719</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-2720"><a href="#L-2720"><span class="linenos">2720</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-2721"><a href="#L-2721"><span class="linenos">2721</span></a> <span class="k">return</span> <span class="n">expression</span>
+</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="nd">@property</span>
+</span><span id="L-2724"><a href="#L-2724"><span class="linenos">2724</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-2725"><a href="#L-2725"><span class="linenos">2725</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-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">Window</span><span class="p">(</span><span class="n">Expression</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><span id="L-2729"><a href="#L-2729"><span class="linenos">2729</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-2730"><a href="#L-2730"><span class="linenos">2730</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-2731"><a href="#L-2731"><span class="linenos">2731</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-2732"><a href="#L-2732"><span class="linenos">2732</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-2733"><a href="#L-2733"><span class="linenos">2733</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-2734"><a href="#L-2734"><span class="linenos">2734</span></a> <span class="p">}</span>
-</span><span id="L-2735"><a href="#L-2735"><span class="linenos">2735</span></a>
-</span><span id="L-2736"><a href="#L-2736"><span class="linenos">2736</span></a>
-</span><span id="L-2737"><a href="#L-2737"><span class="linenos">2737</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-2738"><a href="#L-2738"><span class="linenos">2738</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2739"><a href="#L-2739"><span class="linenos">2739</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-2740"><a href="#L-2740"><span class="linenos">2740</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-2741"><a href="#L-2741"><span class="linenos">2741</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-2742"><a href="#L-2742"><span class="linenos">2742</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-2743"><a href="#L-2743"><span class="linenos">2743</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-2727"><a href="#L-2727"><span class="linenos">2727</span></a> <span class="nd">@property</span>
+</span><span id="L-2728"><a href="#L-2728"><span class="linenos">2728</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-2729"><a href="#L-2729"><span class="linenos">2729</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-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><span id="L-2732"><a href="#L-2732"><span class="linenos">2732</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-2733"><a href="#L-2733"><span class="linenos">2733</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2734"><a href="#L-2734"><span class="linenos">2734</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-2735"><a href="#L-2735"><span class="linenos">2735</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-2736"><a href="#L-2736"><span class="linenos">2736</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-2737"><a href="#L-2737"><span class="linenos">2737</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-2738"><a href="#L-2738"><span class="linenos">2738</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-2739"><a href="#L-2739"><span class="linenos">2739</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-2740"><a href="#L-2740"><span class="linenos">2740</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-2741"><a href="#L-2741"><span class="linenos">2741</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-2742"><a href="#L-2742"><span class="linenos">2742</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-2743"><a href="#L-2743"><span class="linenos">2743</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-2744"><a href="#L-2744"><span class="linenos">2744</span></a> <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 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-2748"><a href="#L-2748"><span class="linenos">2748</span></a> <span class="k">pass</span>
+</span><span id="L-2747"><a href="#L-2747"><span class="linenos">2747</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-2748"><a href="#L-2748"><span class="linenos">2748</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-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="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-2752"><a href="#L-2752"><span class="linenos">2752</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-2753"><a href="#L-2753"><span class="linenos">2753</span></a>
-</span><span id="L-2754"><a href="#L-2754"><span class="linenos">2754</span></a> <span class="nd">@property</span>
-</span><span id="L-2755"><a href="#L-2755"><span class="linenos">2755</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-2756"><a href="#L-2756"><span class="linenos">2756</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
-</span><span id="L-2757"><a href="#L-2757"><span class="linenos">2757</span></a>
-</span><span id="L-2758"><a href="#L-2758"><span class="linenos">2758</span></a> <span class="nd">@property</span>
-</span><span id="L-2759"><a href="#L-2759"><span class="linenos">2759</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-2760"><a href="#L-2760"><span class="linenos">2760</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-2761"><a href="#L-2761"><span class="linenos">2761</span></a>
-</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 class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2764"><a href="#L-2764"><span class="linenos">2764</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;wrapped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2765"><a href="#L-2765"><span class="linenos">2765</span></a>
+</span><span id="L-2750"><a href="#L-2750"><span class="linenos">2750</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2751"><a href="#L-2751"><span class="linenos">2751</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-2752"><a href="#L-2752"><span class="linenos">2752</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-2753"><a href="#L-2753"><span class="linenos">2753</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-2754"><a href="#L-2754"><span class="linenos">2754</span></a> <span class="p">}</span>
+</span><span id="L-2755"><a href="#L-2755"><span class="linenos">2755</span></a>
+</span><span id="L-2756"><a href="#L-2756"><span class="linenos">2756</span></a>
+</span><span id="L-2757"><a href="#L-2757"><span class="linenos">2757</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-2758"><a href="#L-2758"><span class="linenos">2758</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2759"><a href="#L-2759"><span class="linenos">2759</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-2760"><a href="#L-2760"><span class="linenos">2760</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-2761"><a href="#L-2761"><span class="linenos">2761</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-2762"><a href="#L-2762"><span class="linenos">2762</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2763"><a href="#L-2763"><span class="linenos">2763</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2764"><a href="#L-2764"><span class="linenos">2764</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-2765"><a href="#L-2765"><span class="linenos">2765</span></a> <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 class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2768"><a href="#L-2768"><span class="linenos">2768</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2769"><a href="#L-2769"><span class="linenos">2769</span></a>
-</span><span id="L-2770"><a href="#L-2770"><span class="linenos">2770</span></a>
-</span><span id="L-2771"><a href="#L-2771"><span class="linenos">2771</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2772"><a href="#L-2772"><span class="linenos">2772</span></a> <span class="n">arg_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-2773"><a href="#L-2773"><span class="linenos">2773</span></a>
-</span><span id="L-2774"><a href="#L-2774"><span class="linenos">2774</span></a>
-</span><span id="L-2775"><a href="#L-2775"><span class="linenos">2775</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-2776"><a href="#L-2776"><span class="linenos">2776</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-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">Window</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2769"><a href="#L-2769"><span class="linenos">2769</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2770"><a href="#L-2770"><span class="linenos">2770</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-2771"><a href="#L-2771"><span class="linenos">2771</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-2772"><a href="#L-2772"><span class="linenos">2772</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-2773"><a href="#L-2773"><span class="linenos">2773</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-2774"><a href="#L-2774"><span class="linenos">2774</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-2775"><a href="#L-2775"><span class="linenos">2775</span></a> <span class="p">}</span>
+</span><span id="L-2776"><a href="#L-2776"><span class="linenos">2776</span></a>
</span><span id="L-2777"><a href="#L-2777"><span class="linenos">2777</span></a>
-</span><span id="L-2778"><a href="#L-2778"><span class="linenos">2778</span></a> <span class="nd">@property</span>
-</span><span id="L-2779"><a href="#L-2779"><span class="linenos">2779</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-2780"><a href="#L-2780"><span class="linenos">2780</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
-</span><span id="L-2781"><a href="#L-2781"><span class="linenos">2781</span></a>
-</span><span id="L-2782"><a href="#L-2782"><span class="linenos">2782</span></a>
-</span><span id="L-2783"><a href="#L-2783"><span class="linenos">2783</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-2784"><a href="#L-2784"><span class="linenos">2784</span></a> <span class="k">pass</span>
-</span><span id="L-2785"><a href="#L-2785"><span class="linenos">2785</span></a>
+</span><span id="L-2778"><a href="#L-2778"><span class="linenos">2778</span></a><span class="k">class</span> <span class="nc">WindowSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2779"><a href="#L-2779"><span class="linenos">2779</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2780"><a href="#L-2780"><span class="linenos">2780</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-2781"><a href="#L-2781"><span class="linenos">2781</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-2782"><a href="#L-2782"><span class="linenos">2782</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-2783"><a href="#L-2783"><span class="linenos">2783</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-2784"><a href="#L-2784"><span class="linenos">2784</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-2785"><a href="#L-2785"><span class="linenos">2785</span></a> <span class="p">}</span>
</span><span id="L-2786"><a href="#L-2786"><span class="linenos">2786</span></a>
-</span><span id="L-2787"><a href="#L-2787"><span class="linenos">2787</span></a><span class="k">class</span> <span class="nc">DataType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2788"><a href="#L-2788"><span class="linenos">2788</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2789"><a href="#L-2789"><span class="linenos">2789</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-2790"><a href="#L-2790"><span class="linenos">2790</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-2791"><a href="#L-2791"><span class="linenos">2791</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-2792"><a href="#L-2792"><span class="linenos">2792</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-2793"><a href="#L-2793"><span class="linenos">2793</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-2794"><a href="#L-2794"><span class="linenos">2794</span></a> <span class="p">}</span>
-</span><span id="L-2795"><a href="#L-2795"><span class="linenos">2795</span></a>
-</span><span id="L-2796"><a href="#L-2796"><span class="linenos">2796</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
-</span><span id="L-2797"><a href="#L-2797"><span class="linenos">2797</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2798"><a href="#L-2798"><span class="linenos">2798</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2799"><a href="#L-2799"><span class="linenos">2799</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2800"><a href="#L-2800"><span class="linenos">2800</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2801"><a href="#L-2801"><span class="linenos">2801</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2802"><a href="#L-2802"><span class="linenos">2802</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2803"><a href="#L-2803"><span class="linenos">2803</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2804"><a href="#L-2804"><span class="linenos">2804</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2805"><a href="#L-2805"><span class="linenos">2805</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2806"><a href="#L-2806"><span class="linenos">2806</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2807"><a href="#L-2807"><span class="linenos">2807</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2808"><a href="#L-2808"><span class="linenos">2808</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2809"><a href="#L-2809"><span class="linenos">2809</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2810"><a href="#L-2810"><span class="linenos">2810</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2811"><a href="#L-2811"><span class="linenos">2811</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2812"><a href="#L-2812"><span class="linenos">2812</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2813"><a href="#L-2813"><span class="linenos">2813</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2814"><a href="#L-2814"><span class="linenos">2814</span></a> <span class="n">BIGINT</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">UBIGINT</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">FLOAT</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">DOUBLE</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">DECIMAL</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">BIT</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">BOOLEAN</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">JSON</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 class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2823"><a href="#L-2823"><span class="linenos">2823</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2824"><a href="#L-2824"><span class="linenos">2824</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2825"><a href="#L-2825"><span class="linenos">2825</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2826"><a href="#L-2826"><span class="linenos">2826</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2827"><a href="#L-2827"><span class="linenos">2827</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2828"><a href="#L-2828"><span class="linenos">2828</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2829"><a href="#L-2829"><span class="linenos">2829</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2830"><a href="#L-2830"><span class="linenos">2830</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2831"><a href="#L-2831"><span class="linenos">2831</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2832"><a href="#L-2832"><span class="linenos">2832</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2833"><a href="#L-2833"><span class="linenos">2833</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2834"><a href="#L-2834"><span class="linenos">2834</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2835"><a href="#L-2835"><span class="linenos">2835</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2836"><a href="#L-2836"><span class="linenos">2836</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2837"><a href="#L-2837"><span class="linenos">2837</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2838"><a href="#L-2838"><span class="linenos">2838</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2839"><a href="#L-2839"><span class="linenos">2839</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2840"><a href="#L-2840"><span class="linenos">2840</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2841"><a href="#L-2841"><span class="linenos">2841</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2842"><a href="#L-2842"><span class="linenos">2842</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2843"><a href="#L-2843"><span class="linenos">2843</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2844"><a href="#L-2844"><span class="linenos">2844</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2845"><a href="#L-2845"><span class="linenos">2845</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2846"><a href="#L-2846"><span class="linenos">2846</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2847"><a href="#L-2847"><span class="linenos">2847</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2848"><a href="#L-2848"><span class="linenos">2848</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2849"><a href="#L-2849"><span class="linenos">2849</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2850"><a href="#L-2850"><span class="linenos">2850</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2851"><a href="#L-2851"><span class="linenos">2851</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2852"><a href="#L-2852"><span class="linenos">2852</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2853"><a href="#L-2853"><span class="linenos">2853</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-2854"><a href="#L-2854"><span class="linenos">2854</span></a>
-</span><span id="L-2855"><a href="#L-2855"><span class="linenos">2855</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2856"><a href="#L-2856"><span class="linenos">2856</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
-</span><span id="L-2857"><a href="#L-2857"><span class="linenos">2857</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
-</span><span id="L-2858"><a href="#L-2858"><span class="linenos">2858</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
-</span><span id="L-2859"><a href="#L-2859"><span class="linenos">2859</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
-</span><span id="L-2860"><a href="#L-2860"><span class="linenos">2860</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
-</span><span id="L-2861"><a href="#L-2861"><span class="linenos">2861</span></a> <span class="p">}</span>
-</span><span id="L-2862"><a href="#L-2862"><span class="linenos">2862</span></a>
-</span><span id="L-2863"><a href="#L-2863"><span class="linenos">2863</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2864"><a href="#L-2864"><span class="linenos">2864</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
-</span><span id="L-2865"><a href="#L-2865"><span class="linenos">2865</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
-</span><span id="L-2866"><a href="#L-2866"><span class="linenos">2866</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
-</span><span id="L-2867"><a href="#L-2867"><span class="linenos">2867</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
-</span><span id="L-2868"><a href="#L-2868"><span class="linenos">2868</span></a> <span class="p">}</span>
-</span><span id="L-2869"><a href="#L-2869"><span class="linenos">2869</span></a>
-</span><span id="L-2870"><a href="#L-2870"><span class="linenos">2870</span></a> <span class="n">FLOAT_TYPES</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">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
-</span><span id="L-2872"><a href="#L-2872"><span class="linenos">2872</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</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><span id="L-2875"><a href="#L-2875"><span class="linenos">2875</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span>
-</span><span id="L-2876"><a href="#L-2876"><span class="linenos">2876</span></a>
-</span><span id="L-2877"><a href="#L-2877"><span class="linenos">2877</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2878"><a href="#L-2878"><span class="linenos">2878</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
-</span><span id="L-2879"><a href="#L-2879"><span class="linenos">2879</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
-</span><span id="L-2880"><a href="#L-2880"><span class="linenos">2880</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
-</span><span id="L-2881"><a href="#L-2881"><span class="linenos">2881</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
-</span><span id="L-2882"><a href="#L-2882"><span class="linenos">2882</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
-</span><span id="L-2883"><a href="#L-2883"><span class="linenos">2883</span></a> <span class="p">}</span>
-</span><span id="L-2884"><a href="#L-2884"><span class="linenos">2884</span></a>
-</span><span id="L-2885"><a href="#L-2885"><span class="linenos">2885</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-2886"><a href="#L-2886"><span class="linenos">2886</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
-</span><span id="L-2887"><a href="#L-2887"><span class="linenos">2887</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
-</span><span id="L-2888"><a href="#L-2888"><span class="linenos">2888</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="L-2889"><a href="#L-2889"><span class="linenos">2889</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-2890"><a href="#L-2890"><span class="linenos">2890</span></a>
-</span><span id="L-2891"><a href="#L-2891"><span class="linenos">2891</span></a> <span class="k">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-2892"><a href="#L-2892"><span class="linenos">2892</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
-</span><span id="L-2893"><a href="#L-2893"><span class="linenos">2893</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
-</span><span id="L-2894"><a href="#L-2894"><span class="linenos">2894</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-2895"><a href="#L-2895"><span class="linenos">2895</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span>
-</span><span id="L-2896"><a href="#L-2896"><span class="linenos">2896</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-2897"><a href="#L-2897"><span class="linenos">2897</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="L-2898"><a href="#L-2898"><span class="linenos">2898</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-2899"><a href="#L-2899"><span class="linenos">2899</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-2900"><a href="#L-2900"><span class="linenos">2900</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-2901"><a href="#L-2901"><span class="linenos">2901</span></a> <span class="k">return</span> <span class="n">dtype</span>
-</span><span id="L-2902"><a href="#L-2902"><span class="linenos">2902</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-2903"><a href="#L-2903"><span class="linenos">2903</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-2904"><a href="#L-2904"><span class="linenos">2904</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-2905"><a href="#L-2905"><span class="linenos">2905</span></a>
-</span><span id="L-2906"><a href="#L-2906"><span class="linenos">2906</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-2907"><a href="#L-2907"><span class="linenos">2907</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
-</span><span id="L-2908"><a href="#L-2908"><span class="linenos">2908</span></a>
-</span><span id="L-2909"><a href="#L-2909"><span class="linenos">2909</span></a>
-</span><span id="L-2910"><a href="#L-2910"><span class="linenos">2910</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-pseudo.html</span>
-</span><span id="L-2911"><a href="#L-2911"><span class="linenos">2911</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2912"><a href="#L-2912"><span class="linenos">2912</span></a> <span class="k">pass</span>
-</span><span id="L-2913"><a href="#L-2913"><span class="linenos">2913</span></a>
-</span><span id="L-2914"><a href="#L-2914"><span class="linenos">2914</span></a>
-</span><span id="L-2915"><a href="#L-2915"><span class="linenos">2915</span></a><span class="k">class</span> <span class="nc">StructKwarg</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2916"><a href="#L-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;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-2917"><a href="#L-2917"><span class="linenos">2917</span></a>
+</span><span id="L-2787"><a href="#L-2787"><span class="linenos">2787</span></a>
+</span><span id="L-2788"><a href="#L-2788"><span class="linenos">2788</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-2789"><a href="#L-2789"><span class="linenos">2789</span></a> <span class="k">pass</span>
+</span><span id="L-2790"><a href="#L-2790"><span class="linenos">2790</span></a>
+</span><span id="L-2791"><a href="#L-2791"><span class="linenos">2791</span></a>
+</span><span id="L-2792"><a href="#L-2792"><span class="linenos">2792</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-2793"><a href="#L-2793"><span class="linenos">2793</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-2794"><a href="#L-2794"><span class="linenos">2794</span></a>
+</span><span id="L-2795"><a href="#L-2795"><span class="linenos">2795</span></a> <span class="nd">@property</span>
+</span><span id="L-2796"><a href="#L-2796"><span class="linenos">2796</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-2797"><a href="#L-2797"><span class="linenos">2797</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
+</span><span id="L-2798"><a href="#L-2798"><span class="linenos">2798</span></a>
+</span><span id="L-2799"><a href="#L-2799"><span class="linenos">2799</span></a> <span class="nd">@property</span>
+</span><span id="L-2800"><a href="#L-2800"><span class="linenos">2800</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-2801"><a href="#L-2801"><span class="linenos">2801</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-2802"><a href="#L-2802"><span class="linenos">2802</span></a>
+</span><span id="L-2803"><a href="#L-2803"><span class="linenos">2803</span></a>
+</span><span id="L-2804"><a href="#L-2804"><span class="linenos">2804</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2805"><a href="#L-2805"><span class="linenos">2805</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;wrapped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2806"><a href="#L-2806"><span class="linenos">2806</span></a>
+</span><span id="L-2807"><a href="#L-2807"><span class="linenos">2807</span></a>
+</span><span id="L-2808"><a href="#L-2808"><span class="linenos">2808</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2809"><a href="#L-2809"><span class="linenos">2809</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-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><span id="L-2812"><a href="#L-2812"><span class="linenos">2812</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2813"><a href="#L-2813"><span class="linenos">2813</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2814"><a href="#L-2814"><span class="linenos">2814</span></a>
+</span><span id="L-2815"><a href="#L-2815"><span class="linenos">2815</span></a>
+</span><span id="L-2816"><a href="#L-2816"><span class="linenos">2816</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-2817"><a href="#L-2817"><span class="linenos">2817</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-2818"><a href="#L-2818"><span class="linenos">2818</span></a>
+</span><span id="L-2819"><a href="#L-2819"><span class="linenos">2819</span></a> <span class="nd">@property</span>
+</span><span id="L-2820"><a href="#L-2820"><span class="linenos">2820</span></a> <span class="k">def</span> <span class="nf">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-2821"><a href="#L-2821"><span class="linenos">2821</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</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">Boolean</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-2825"><a href="#L-2825"><span class="linenos">2825</span></a> <span class="k">pass</span>
+</span><span id="L-2826"><a href="#L-2826"><span class="linenos">2826</span></a>
+</span><span id="L-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">DataType</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><span id="L-2830"><a href="#L-2830"><span class="linenos">2830</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-2831"><a href="#L-2831"><span class="linenos">2831</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-2832"><a href="#L-2832"><span class="linenos">2832</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-2833"><a href="#L-2833"><span class="linenos">2833</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-2834"><a href="#L-2834"><span class="linenos">2834</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-2835"><a href="#L-2835"><span class="linenos">2835</span></a> <span class="p">}</span>
+</span><span id="L-2836"><a href="#L-2836"><span class="linenos">2836</span></a>
+</span><span id="L-2837"><a href="#L-2837"><span class="linenos">2837</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
+</span><span id="L-2838"><a href="#L-2838"><span class="linenos">2838</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2839"><a href="#L-2839"><span class="linenos">2839</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2840"><a href="#L-2840"><span class="linenos">2840</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2841"><a href="#L-2841"><span class="linenos">2841</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2842"><a href="#L-2842"><span class="linenos">2842</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2843"><a href="#L-2843"><span class="linenos">2843</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2844"><a href="#L-2844"><span class="linenos">2844</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2845"><a href="#L-2845"><span class="linenos">2845</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2846"><a href="#L-2846"><span class="linenos">2846</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2847"><a href="#L-2847"><span class="linenos">2847</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2848"><a href="#L-2848"><span class="linenos">2848</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2849"><a href="#L-2849"><span class="linenos">2849</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2850"><a href="#L-2850"><span class="linenos">2850</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2851"><a href="#L-2851"><span class="linenos">2851</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2852"><a href="#L-2852"><span class="linenos">2852</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2853"><a href="#L-2853"><span class="linenos">2853</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2854"><a href="#L-2854"><span class="linenos">2854</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2855"><a href="#L-2855"><span class="linenos">2855</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2856"><a href="#L-2856"><span class="linenos">2856</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2857"><a href="#L-2857"><span class="linenos">2857</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2858"><a href="#L-2858"><span class="linenos">2858</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2859"><a href="#L-2859"><span class="linenos">2859</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2860"><a href="#L-2860"><span class="linenos">2860</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2861"><a href="#L-2861"><span class="linenos">2861</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2862"><a href="#L-2862"><span class="linenos">2862</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2863"><a href="#L-2863"><span class="linenos">2863</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2864"><a href="#L-2864"><span class="linenos">2864</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2865"><a href="#L-2865"><span class="linenos">2865</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2866"><a href="#L-2866"><span class="linenos">2866</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2867"><a href="#L-2867"><span class="linenos">2867</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2868"><a href="#L-2868"><span class="linenos">2868</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2869"><a href="#L-2869"><span class="linenos">2869</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2870"><a href="#L-2870"><span class="linenos">2870</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2871"><a href="#L-2871"><span class="linenos">2871</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2872"><a href="#L-2872"><span class="linenos">2872</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2873"><a href="#L-2873"><span class="linenos">2873</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2874"><a href="#L-2874"><span class="linenos">2874</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2875"><a href="#L-2875"><span class="linenos">2875</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2876"><a href="#L-2876"><span class="linenos">2876</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2877"><a href="#L-2877"><span class="linenos">2877</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2878"><a href="#L-2878"><span class="linenos">2878</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2879"><a href="#L-2879"><span class="linenos">2879</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2880"><a href="#L-2880"><span class="linenos">2880</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2881"><a href="#L-2881"><span class="linenos">2881</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2882"><a href="#L-2882"><span class="linenos">2882</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2883"><a href="#L-2883"><span class="linenos">2883</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2884"><a href="#L-2884"><span class="linenos">2884</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2885"><a href="#L-2885"><span class="linenos">2885</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2886"><a href="#L-2886"><span class="linenos">2886</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2887"><a href="#L-2887"><span class="linenos">2887</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2888"><a href="#L-2888"><span class="linenos">2888</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2889"><a href="#L-2889"><span class="linenos">2889</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2890"><a href="#L-2890"><span class="linenos">2890</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2891"><a href="#L-2891"><span class="linenos">2891</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2892"><a href="#L-2892"><span class="linenos">2892</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2893"><a href="#L-2893"><span class="linenos">2893</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2894"><a href="#L-2894"><span class="linenos">2894</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2895"><a href="#L-2895"><span class="linenos">2895</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-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 class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2898"><a href="#L-2898"><span class="linenos">2898</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
+</span><span id="L-2899"><a href="#L-2899"><span class="linenos">2899</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
+</span><span id="L-2900"><a href="#L-2900"><span class="linenos">2900</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
+</span><span id="L-2901"><a href="#L-2901"><span class="linenos">2901</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
+</span><span id="L-2902"><a href="#L-2902"><span class="linenos">2902</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
+</span><span id="L-2903"><a href="#L-2903"><span class="linenos">2903</span></a> <span class="p">}</span>
+</span><span id="L-2904"><a href="#L-2904"><span class="linenos">2904</span></a>
+</span><span id="L-2905"><a href="#L-2905"><span class="linenos">2905</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2906"><a href="#L-2906"><span class="linenos">2906</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
+</span><span id="L-2907"><a href="#L-2907"><span class="linenos">2907</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
+</span><span id="L-2908"><a href="#L-2908"><span class="linenos">2908</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
+</span><span id="L-2909"><a href="#L-2909"><span class="linenos">2909</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
+</span><span id="L-2910"><a href="#L-2910"><span class="linenos">2910</span></a> <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 class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2913"><a href="#L-2913"><span class="linenos">2913</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
+</span><span id="L-2914"><a href="#L-2914"><span class="linenos">2914</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
+</span><span id="L-2915"><a href="#L-2915"><span class="linenos">2915</span></a> <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 class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span>
</span><span id="L-2918"><a href="#L-2918"><span class="linenos">2918</span></a>
-</span><span id="L-2919"><a href="#L-2919"><span class="linenos">2919</span></a><span class="c1"># WHERE x &lt;OP&gt; EXISTS|ALL|ANY|SOME(SELECT ...)</span>
-</span><span id="L-2920"><a href="#L-2920"><span class="linenos">2920</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-2921"><a href="#L-2921"><span class="linenos">2921</span></a> <span class="k">pass</span>
-</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><span id="L-2924"><a href="#L-2924"><span class="linenos">2924</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-2925"><a href="#L-2925"><span class="linenos">2925</span></a> <span class="k">pass</span>
+</span><span id="L-2919"><a href="#L-2919"><span class="linenos">2919</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2920"><a href="#L-2920"><span class="linenos">2920</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
+</span><span id="L-2921"><a href="#L-2921"><span class="linenos">2921</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
+</span><span id="L-2922"><a href="#L-2922"><span class="linenos">2922</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
+</span><span id="L-2923"><a href="#L-2923"><span class="linenos">2923</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
+</span><span id="L-2924"><a href="#L-2924"><span class="linenos">2924</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
+</span><span id="L-2925"><a href="#L-2925"><span class="linenos">2925</span></a> <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">Any</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
-</span><span id="L-2929"><a href="#L-2929"><span class="linenos">2929</span></a> <span class="k">pass</span>
-</span><span id="L-2930"><a href="#L-2930"><span class="linenos">2930</span></a>
-</span><span id="L-2931"><a href="#L-2931"><span class="linenos">2931</span></a>
-</span><span id="L-2932"><a href="#L-2932"><span class="linenos">2932</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-2933"><a href="#L-2933"><span class="linenos">2933</span></a> <span class="k">pass</span>
-</span><span id="L-2934"><a href="#L-2934"><span class="linenos">2934</span></a>
-</span><span id="L-2935"><a href="#L-2935"><span class="linenos">2935</span></a>
-</span><span id="L-2936"><a href="#L-2936"><span class="linenos">2936</span></a><span class="c1"># Commands to interact with the databases or engines. For most of the command</span>
-</span><span id="L-2937"><a href="#L-2937"><span class="linenos">2937</span></a><span class="c1"># expressions we parse whatever comes after the command&#39;s name as a string.</span>
-</span><span id="L-2938"><a href="#L-2938"><span class="linenos">2938</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-2939"><a href="#L-2939"><span class="linenos">2939</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-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><span id="L-2942"><a href="#L-2942"><span class="linenos">2942</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-2943"><a href="#L-2943"><span class="linenos">2943</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-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><span id="L-2946"><a href="#L-2946"><span class="linenos">2946</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-2947"><a href="#L-2947"><span class="linenos">2947</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2948"><a href="#L-2948"><span class="linenos">2948</span></a>
-</span><span id="L-2949"><a href="#L-2949"><span class="linenos">2949</span></a>
-</span><span id="L-2950"><a href="#L-2950"><span class="linenos">2950</span></a><span class="k">class</span> <span class="nc">Rollback</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2951"><a href="#L-2951"><span class="linenos">2951</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-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><span id="L-2954"><a href="#L-2954"><span class="linenos">2954</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-2955"><a href="#L-2955"><span class="linenos">2955</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2927"><a href="#L-2927"><span class="linenos">2927</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-2928"><a href="#L-2928"><span class="linenos">2928</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
+</span><span id="L-2929"><a href="#L-2929"><span class="linenos">2929</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
+</span><span id="L-2930"><a href="#L-2930"><span class="linenos">2930</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="L-2931"><a href="#L-2931"><span class="linenos">2931</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-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="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-2934"><a href="#L-2934"><span class="linenos">2934</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
+</span><span id="L-2935"><a href="#L-2935"><span class="linenos">2935</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
+</span><span id="L-2936"><a href="#L-2936"><span class="linenos">2936</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-2937"><a href="#L-2937"><span class="linenos">2937</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span>
+</span><span id="L-2938"><a href="#L-2938"><span class="linenos">2938</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-2939"><a href="#L-2939"><span class="linenos">2939</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="L-2940"><a href="#L-2940"><span class="linenos">2940</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-2941"><a href="#L-2941"><span class="linenos">2941</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-2942"><a href="#L-2942"><span class="linenos">2942</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-2943"><a href="#L-2943"><span class="linenos">2943</span></a> <span class="k">return</span> <span class="n">dtype</span>
+</span><span id="L-2944"><a href="#L-2944"><span class="linenos">2944</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-2945"><a href="#L-2945"><span class="linenos">2945</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-2946"><a href="#L-2946"><span class="linenos">2946</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-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="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-2949"><a href="#L-2949"><span class="linenos">2949</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
+</span><span id="L-2950"><a href="#L-2950"><span class="linenos">2950</span></a>
+</span><span id="L-2951"><a href="#L-2951"><span class="linenos">2951</span></a>
+</span><span id="L-2952"><a href="#L-2952"><span class="linenos">2952</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-pseudo.html</span>
+</span><span id="L-2953"><a href="#L-2953"><span class="linenos">2953</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2954"><a href="#L-2954"><span class="linenos">2954</span></a> <span class="k">pass</span>
+</span><span id="L-2955"><a href="#L-2955"><span class="linenos">2955</span></a>
</span><span id="L-2956"><a href="#L-2956"><span class="linenos">2956</span></a>
-</span><span id="L-2957"><a href="#L-2957"><span class="linenos">2957</span></a>
-</span><span id="L-2958"><a href="#L-2958"><span class="linenos">2958</span></a><span class="k">class</span> <span class="nc">AddConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2959"><a href="#L-2959"><span class="linenos">2959</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;enforced&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2957"><a href="#L-2957"><span class="linenos">2957</span></a><span class="k">class</span> <span class="nc">StructKwarg</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2958"><a href="#L-2958"><span class="linenos">2958</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-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><span id="L-2961"><a href="#L-2961"><span class="linenos">2961</span></a>
-</span><span id="L-2962"><a href="#L-2962"><span class="linenos">2962</span></a><span class="k">class</span> <span class="nc">DropPartition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2963"><a href="#L-2963"><span class="linenos">2963</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-2961"><a href="#L-2961"><span class="linenos">2961</span></a><span class="c1"># WHERE x &lt;OP&gt; EXISTS|ALL|ANY|SOME(SELECT ...)</span>
+</span><span id="L-2962"><a href="#L-2962"><span class="linenos">2962</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-2963"><a href="#L-2963"><span class="linenos">2963</span></a> <span class="k">pass</span>
</span><span id="L-2964"><a href="#L-2964"><span class="linenos">2964</span></a>
</span><span id="L-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="c1"># Binary expressions like (ADD a b)</span>
-</span><span id="L-2967"><a href="#L-2967"><span class="linenos">2967</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2968"><a href="#L-2968"><span class="linenos">2968</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-2966"><a href="#L-2966"><span class="linenos">2966</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-2967"><a href="#L-2967"><span class="linenos">2967</span></a> <span class="k">pass</span>
+</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><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">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-2972"><a href="#L-2972"><span class="linenos">2972</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-2970"><a href="#L-2970"><span class="linenos">2970</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-2971"><a href="#L-2971"><span class="linenos">2971</span></a> <span class="k">pass</span>
+</span><span id="L-2972"><a href="#L-2972"><span class="linenos">2972</span></a>
</span><span id="L-2973"><a href="#L-2973"><span class="linenos">2973</span></a>
-</span><span id="L-2974"><a href="#L-2974"><span class="linenos">2974</span></a> <span class="nd">@property</span>
-</span><span id="L-2975"><a href="#L-2975"><span class="linenos">2975</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-2976"><a href="#L-2976"><span class="linenos">2976</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-2974"><a href="#L-2974"><span class="linenos">2974</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-2975"><a href="#L-2975"><span class="linenos">2975</span></a> <span class="k">pass</span>
+</span><span id="L-2976"><a href="#L-2976"><span class="linenos">2976</span></a>
</span><span id="L-2977"><a href="#L-2977"><span class="linenos">2977</span></a>
-</span><span id="L-2978"><a href="#L-2978"><span class="linenos">2978</span></a>
-</span><span id="L-2979"><a href="#L-2979"><span class="linenos">2979</span></a><span 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-2980"><a href="#L-2980"><span class="linenos">2980</span></a> <span class="k">pass</span>
-</span><span id="L-2981"><a href="#L-2981"><span class="linenos">2981</span></a>
+</span><span id="L-2978"><a href="#L-2978"><span class="linenos">2978</span></a><span class="c1"># Commands to interact with the databases or engines. For most of the command</span>
+</span><span id="L-2979"><a href="#L-2979"><span class="linenos">2979</span></a><span class="c1"># expressions we parse whatever comes after the command&#39;s name as a string.</span>
+</span><span id="L-2980"><a href="#L-2980"><span class="linenos">2980</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-2981"><a href="#L-2981"><span class="linenos">2981</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-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">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-2984"><a href="#L-2984"><span class="linenos">2984</span></a> <span class="k">pass</span>
-</span><span id="L-2985"><a href="#L-2985"><span class="linenos">2985</span></a>
+</span><span id="L-2983"><a href="#L-2983"><span class="linenos">2983</span></a>
+</span><span id="L-2984"><a href="#L-2984"><span class="linenos">2984</span></a><span class="k">class</span> <span class="nc">Transaction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2985"><a href="#L-2985"><span class="linenos">2985</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2986"><a href="#L-2986"><span class="linenos">2986</span></a>
-</span><span id="L-2987"><a href="#L-2987"><span class="linenos">2987</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-2988"><a href="#L-2988"><span class="linenos">2988</span></a> <span class="k">pass</span>
-</span><span id="L-2989"><a href="#L-2989"><span class="linenos">2989</span></a>
+</span><span id="L-2987"><a href="#L-2987"><span class="linenos">2987</span></a>
+</span><span id="L-2988"><a href="#L-2988"><span class="linenos">2988</span></a><span class="k">class</span> <span class="nc">Commit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2989"><a href="#L-2989"><span class="linenos">2989</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2990"><a href="#L-2990"><span class="linenos">2990</span></a>
-</span><span id="L-2991"><a href="#L-2991"><span class="linenos">2991</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-2992"><a href="#L-2992"><span class="linenos">2992</span></a> <span class="k">pass</span>
-</span><span id="L-2993"><a href="#L-2993"><span class="linenos">2993</span></a>
+</span><span id="L-2991"><a href="#L-2991"><span class="linenos">2991</span></a>
+</span><span id="L-2992"><a href="#L-2992"><span class="linenos">2992</span></a><span class="k">class</span> <span class="nc">Rollback</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2993"><a href="#L-2993"><span class="linenos">2993</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2994"><a href="#L-2994"><span class="linenos">2994</span></a>
-</span><span id="L-2995"><a href="#L-2995"><span class="linenos">2995</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-2996"><a href="#L-2996"><span class="linenos">2996</span></a> <span class="k">pass</span>
-</span><span id="L-2997"><a href="#L-2997"><span class="linenos">2997</span></a>
+</span><span id="L-2995"><a href="#L-2995"><span class="linenos">2995</span></a>
+</span><span id="L-2996"><a href="#L-2996"><span class="linenos">2996</span></a><span class="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-2997"><a href="#L-2997"><span class="linenos">2997</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2998"><a href="#L-2998"><span class="linenos">2998</span></a>
-</span><span id="L-2999"><a href="#L-2999"><span class="linenos">2999</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-3000"><a href="#L-3000"><span class="linenos">3000</span></a> <span class="k">pass</span>
-</span><span id="L-3001"><a href="#L-3001"><span class="linenos">3001</span></a>
+</span><span id="L-2999"><a href="#L-2999"><span class="linenos">2999</span></a>
+</span><span id="L-3000"><a href="#L-3000"><span class="linenos">3000</span></a><span class="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-3001"><a href="#L-3001"><span class="linenos">3001</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;enforced&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3002"><a href="#L-3002"><span class="linenos">3002</span></a>
-</span><span id="L-3003"><a href="#L-3003"><span class="linenos">3003</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-3004"><a href="#L-3004"><span class="linenos">3004</span></a> <span class="k">pass</span>
-</span><span id="L-3005"><a href="#L-3005"><span class="linenos">3005</span></a>
+</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">class</span> <span class="nc">DropPartition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3005"><a href="#L-3005"><span class="linenos">3005</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-3006"><a href="#L-3006"><span class="linenos">3006</span></a>
-</span><span id="L-3007"><a href="#L-3007"><span class="linenos">3007</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-3008"><a href="#L-3008"><span class="linenos">3008</span></a> <span class="k">pass</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><span id="L-3011"><a href="#L-3011"><span class="linenos">3011</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-3012"><a href="#L-3012"><span class="linenos">3012</span></a> <span class="k">pass</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">Div</span><span class="p">(</span><span class="n">Binary</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-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">Overlaps</span><span class="p">(</span><span class="n">Binary</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-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">Dot</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3024"><a href="#L-3024"><span class="linenos">3024</span></a> <span class="nd">@property</span>
-</span><span id="L-3025"><a href="#L-3025"><span class="linenos">3025</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-3026"><a href="#L-3026"><span class="linenos">3026</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-3007"><a href="#L-3007"><span class="linenos">3007</span></a>
+</span><span id="L-3008"><a href="#L-3008"><span class="linenos">3008</span></a><span class="c1"># Binary expressions like (ADD a b)</span>
+</span><span id="L-3009"><a href="#L-3009"><span class="linenos">3009</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3010"><a href="#L-3010"><span class="linenos">3010</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3011"><a href="#L-3011"><span class="linenos">3011</span></a>
+</span><span id="L-3012"><a href="#L-3012"><span class="linenos">3012</span></a> <span class="nd">@property</span>
+</span><span id="L-3013"><a href="#L-3013"><span class="linenos">3013</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-3014"><a href="#L-3014"><span class="linenos">3014</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-3015"><a href="#L-3015"><span class="linenos">3015</span></a>
+</span><span id="L-3016"><a href="#L-3016"><span class="linenos">3016</span></a> <span class="nd">@property</span>
+</span><span id="L-3017"><a href="#L-3017"><span class="linenos">3017</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-3018"><a href="#L-3018"><span class="linenos">3018</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-3019"><a href="#L-3019"><span class="linenos">3019</span></a>
+</span><span id="L-3020"><a href="#L-3020"><span class="linenos">3020</span></a>
+</span><span id="L-3021"><a href="#L-3021"><span class="linenos">3021</span></a><span class="k">class</span> <span class="nc">Add</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3022"><a href="#L-3022"><span class="linenos">3022</span></a> <span class="k">pass</span>
+</span><span id="L-3023"><a href="#L-3023"><span class="linenos">3023</span></a>
+</span><span id="L-3024"><a href="#L-3024"><span class="linenos">3024</span></a>
+</span><span id="L-3025"><a href="#L-3025"><span class="linenos">3025</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3026"><a href="#L-3026"><span class="linenos">3026</span></a> <span class="k">pass</span>
</span><span id="L-3027"><a href="#L-3027"><span class="linenos">3027</span></a>
-</span><span id="L-3028"><a href="#L-3028"><span class="linenos">3028</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-3029"><a href="#L-3029"><span class="linenos">3029</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-3030"><a href="#L-3030"><span class="linenos">3030</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-3031"><a href="#L-3031"><span class="linenos">3031</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-3032"><a href="#L-3032"><span class="linenos">3032</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;Dot requires &gt;= 2 expressions.&quot;</span><span class="p">)</span>
-</span><span id="L-3033"><a href="#L-3033"><span class="linenos">3033</span></a>
-</span><span id="L-3034"><a href="#L-3034"><span class="linenos">3034</span></a> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span> <span class="o">=</span> <span class="n">expressions</span>
-</span><span id="L-3035"><a href="#L-3035"><span class="linenos">3035</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">b</span><span class="p">)</span>
+</span><span id="L-3028"><a href="#L-3028"><span class="linenos">3028</span></a>
+</span><span id="L-3029"><a href="#L-3029"><span class="linenos">3029</span></a><span class="k">class</span> <span class="nc">And</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
+</span><span id="L-3030"><a href="#L-3030"><span class="linenos">3030</span></a> <span class="k">pass</span>
+</span><span id="L-3031"><a href="#L-3031"><span class="linenos">3031</span></a>
+</span><span id="L-3032"><a href="#L-3032"><span class="linenos">3032</span></a>
+</span><span id="L-3033"><a href="#L-3033"><span class="linenos">3033</span></a><span 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-3034"><a href="#L-3034"><span class="linenos">3034</span></a> <span class="k">pass</span>
+</span><span id="L-3035"><a href="#L-3035"><span class="linenos">3035</span></a>
</span><span id="L-3036"><a href="#L-3036"><span class="linenos">3036</span></a>
-</span><span id="L-3037"><a href="#L-3037"><span class="linenos">3037</span></a> <span 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-3038"><a href="#L-3038"><span class="linenos">3038</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dot</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</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">class</span> <span class="nc">BitwiseAnd</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3038"><a href="#L-3038"><span class="linenos">3038</span></a> <span class="k">pass</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">return</span> <span class="n">dot</span>
-</span><span id="L-3041"><a href="#L-3041"><span class="linenos">3041</span></a>
-</span><span id="L-3042"><a href="#L-3042"><span class="linenos">3042</span></a>
-</span><span id="L-3043"><a href="#L-3043"><span class="linenos">3043</span></a><span class="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-3044"><a href="#L-3044"><span class="linenos">3044</span></a> <span class="k">pass</span>
-</span><span id="L-3045"><a href="#L-3045"><span class="linenos">3045</span></a>
-</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 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-3048"><a href="#L-3048"><span class="linenos">3048</span></a> <span class="k">pass</span>
-</span><span id="L-3049"><a href="#L-3049"><span class="linenos">3049</span></a>
-</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 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-3052"><a href="#L-3052"><span class="linenos">3052</span></a> <span class="k">pass</span>
-</span><span id="L-3053"><a href="#L-3053"><span class="linenos">3053</span></a>
-</span><span id="L-3054"><a href="#L-3054"><span class="linenos">3054</span></a>
-</span><span id="L-3055"><a href="#L-3055"><span class="linenos">3055</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-3056"><a href="#L-3056"><span class="linenos">3056</span></a> <span class="k">pass</span>
-</span><span id="L-3057"><a href="#L-3057"><span class="linenos">3057</span></a>
-</span><span id="L-3058"><a href="#L-3058"><span class="linenos">3058</span></a>
-</span><span id="L-3059"><a href="#L-3059"><span class="linenos">3059</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-3060"><a href="#L-3060"><span class="linenos">3060</span></a> <span class="k">pass</span>
-</span><span id="L-3061"><a href="#L-3061"><span class="linenos">3061</span></a>
-</span><span id="L-3062"><a href="#L-3062"><span class="linenos">3062</span></a>
-</span><span id="L-3063"><a href="#L-3063"><span class="linenos">3063</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-3064"><a href="#L-3064"><span class="linenos">3064</span></a> <span class="k">pass</span>
-</span><span id="L-3065"><a href="#L-3065"><span class="linenos">3065</span></a>
-</span><span id="L-3066"><a href="#L-3066"><span class="linenos">3066</span></a>
-</span><span id="L-3067"><a href="#L-3067"><span class="linenos">3067</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-3068"><a href="#L-3068"><span class="linenos">3068</span></a> <span class="k">pass</span>
+</span><span id="L-3040"><a href="#L-3040"><span class="linenos">3040</span></a>
+</span><span id="L-3041"><a href="#L-3041"><span class="linenos">3041</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-3042"><a href="#L-3042"><span class="linenos">3042</span></a> <span class="k">pass</span>
+</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><span id="L-3045"><a href="#L-3045"><span class="linenos">3045</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-3046"><a href="#L-3046"><span class="linenos">3046</span></a> <span class="k">pass</span>
+</span><span id="L-3047"><a href="#L-3047"><span class="linenos">3047</span></a>
+</span><span id="L-3048"><a href="#L-3048"><span class="linenos">3048</span></a>
+</span><span id="L-3049"><a href="#L-3049"><span class="linenos">3049</span></a><span class="k">class</span> <span class="nc">BitwiseRightShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3050"><a href="#L-3050"><span class="linenos">3050</span></a> <span class="k">pass</span>
+</span><span id="L-3051"><a href="#L-3051"><span class="linenos">3051</span></a>
+</span><span id="L-3052"><a href="#L-3052"><span class="linenos">3052</span></a>
+</span><span id="L-3053"><a href="#L-3053"><span class="linenos">3053</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-3054"><a href="#L-3054"><span class="linenos">3054</span></a> <span class="k">pass</span>
+</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><span id="L-3057"><a href="#L-3057"><span class="linenos">3057</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-3058"><a href="#L-3058"><span class="linenos">3058</span></a> <span class="k">pass</span>
+</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><span id="L-3061"><a href="#L-3061"><span class="linenos">3061</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-3062"><a href="#L-3062"><span class="linenos">3062</span></a> <span class="k">pass</span>
+</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><span id="L-3065"><a href="#L-3065"><span class="linenos">3065</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-3066"><a href="#L-3066"><span class="linenos">3066</span></a> <span class="nd">@property</span>
+</span><span id="L-3067"><a href="#L-3067"><span class="linenos">3067</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-3068"><a href="#L-3068"><span class="linenos">3068</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-3069"><a href="#L-3069"><span class="linenos">3069</span></a>
-</span><span id="L-3070"><a href="#L-3070"><span class="linenos">3070</span></a>
-</span><span id="L-3071"><a href="#L-3071"><span class="linenos">3071</span></a><span class="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-3072"><a href="#L-3072"><span class="linenos">3072</span></a> <span class="k">pass</span>
-</span><span id="L-3073"><a href="#L-3073"><span class="linenos">3073</span></a>
-</span><span id="L-3074"><a href="#L-3074"><span class="linenos">3074</span></a>
-</span><span id="L-3075"><a href="#L-3075"><span class="linenos">3075</span></a><span class="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-3076"><a href="#L-3076"><span class="linenos">3076</span></a> <span class="k">pass</span>
-</span><span id="L-3077"><a href="#L-3077"><span class="linenos">3077</span></a>
+</span><span id="L-3070"><a href="#L-3070"><span class="linenos">3070</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-3071"><a href="#L-3071"><span class="linenos">3071</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-3072"><a href="#L-3072"><span class="linenos">3072</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-3073"><a href="#L-3073"><span class="linenos">3073</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-3074"><a href="#L-3074"><span class="linenos">3074</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;Dot requires &gt;= 2 expressions.&quot;</span><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 class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span> <span class="o">=</span> <span class="n">expressions</span>
+</span><span id="L-3077"><a href="#L-3077"><span class="linenos">3077</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">b</span><span class="p">)</span>
</span><span id="L-3078"><a href="#L-3078"><span class="linenos">3078</span></a>
-</span><span id="L-3079"><a href="#L-3079"><span class="linenos">3079</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-3080"><a href="#L-3080"><span class="linenos">3080</span></a> <span class="k">pass</span>
+</span><span id="L-3079"><a href="#L-3079"><span class="linenos">3079</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-3080"><a href="#L-3080"><span class="linenos">3080</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dot</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</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><span id="L-3082"><a href="#L-3082"><span class="linenos">3082</span></a>
-</span><span id="L-3083"><a href="#L-3083"><span class="linenos">3083</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-3084"><a href="#L-3084"><span class="linenos">3084</span></a> <span class="k">pass</span>
-</span><span id="L-3085"><a href="#L-3085"><span class="linenos">3085</span></a>
-</span><span id="L-3086"><a href="#L-3086"><span class="linenos">3086</span></a>
-</span><span id="L-3087"><a href="#L-3087"><span class="linenos">3087</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-3088"><a href="#L-3088"><span class="linenos">3088</span></a> <span class="k">pass</span>
-</span><span id="L-3089"><a href="#L-3089"><span class="linenos">3089</span></a>
-</span><span id="L-3090"><a href="#L-3090"><span class="linenos">3090</span></a>
-</span><span id="L-3091"><a href="#L-3091"><span class="linenos">3091</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-3092"><a href="#L-3092"><span class="linenos">3092</span></a> <span class="k">pass</span>
-</span><span id="L-3093"><a href="#L-3093"><span class="linenos">3093</span></a>
-</span><span id="L-3094"><a href="#L-3094"><span class="linenos">3094</span></a>
-</span><span id="L-3095"><a href="#L-3095"><span class="linenos">3095</span></a><span class="k">class</span> <span class="nc">Kwarg</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3096"><a href="#L-3096"><span class="linenos">3096</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-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">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-3100"><a href="#L-3100"><span class="linenos">3100</span></a> <span class="k">pass</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><span id="L-3103"><a href="#L-3103"><span class="linenos">3103</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-3104"><a href="#L-3104"><span class="linenos">3104</span></a> <span class="k">pass</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><span id="L-3107"><a href="#L-3107"><span class="linenos">3107</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-3108"><a href="#L-3108"><span class="linenos">3108</span></a> <span class="k">pass</span>
-</span><span id="L-3109"><a href="#L-3109"><span class="linenos">3109</span></a>
-</span><span id="L-3110"><a href="#L-3110"><span class="linenos">3110</span></a>
-</span><span id="L-3111"><a href="#L-3111"><span class="linenos">3111</span></a><span class="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-3112"><a href="#L-3112"><span class="linenos">3112</span></a> <span class="k">pass</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><span id="L-3115"><a href="#L-3115"><span class="linenos">3115</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-3116"><a href="#L-3116"><span class="linenos">3116</span></a> <span class="k">pass</span>
-</span><span id="L-3117"><a href="#L-3117"><span class="linenos">3117</span></a>
-</span><span id="L-3118"><a href="#L-3118"><span class="linenos">3118</span></a>
-</span><span id="L-3119"><a href="#L-3119"><span class="linenos">3119</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-3120"><a href="#L-3120"><span class="linenos">3120</span></a> <span class="k">pass</span>
-</span><span id="L-3121"><a href="#L-3121"><span class="linenos">3121</span></a>
-</span><span id="L-3122"><a href="#L-3122"><span class="linenos">3122</span></a>
-</span><span id="L-3123"><a href="#L-3123"><span class="linenos">3123</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-3124"><a href="#L-3124"><span class="linenos">3124</span></a> <span class="k">pass</span>
-</span><span id="L-3125"><a href="#L-3125"><span class="linenos">3125</span></a>
-</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="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-3128"><a href="#L-3128"><span class="linenos">3128</span></a> <span class="k">pass</span>
-</span><span id="L-3129"><a href="#L-3129"><span class="linenos">3129</span></a>
-</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="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-3132"><a href="#L-3132"><span class="linenos">3132</span></a> <span class="n">arg_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-3133"><a href="#L-3133"><span class="linenos">3133</span></a>
-</span><span id="L-3134"><a href="#L-3134"><span class="linenos">3134</span></a>
-</span><span id="L-3135"><a href="#L-3135"><span class="linenos">3135</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-3136"><a href="#L-3136"><span class="linenos">3136</span></a> <span class="k">pass</span>
-</span><span id="L-3137"><a href="#L-3137"><span class="linenos">3137</span></a>
-</span><span id="L-3138"><a href="#L-3138"><span class="linenos">3138</span></a>
-</span><span id="L-3139"><a href="#L-3139"><span class="linenos">3139</span></a><span class="k">class</span> <span class="nc">ArrayOverlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3140"><a href="#L-3140"><span class="linenos">3140</span></a> <span class="k">pass</span>
-</span><span id="L-3141"><a href="#L-3141"><span class="linenos">3141</span></a>
-</span><span id="L-3142"><a href="#L-3142"><span class="linenos">3142</span></a>
-</span><span id="L-3143"><a href="#L-3143"><span class="linenos">3143</span></a><span class="c1"># Unary Expressions</span>
-</span><span id="L-3144"><a href="#L-3144"><span class="linenos">3144</span></a><span class="c1"># (NOT a)</span>
-</span><span id="L-3145"><a href="#L-3145"><span class="linenos">3145</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3082"><a href="#L-3082"><span class="linenos">3082</span></a> <span class="k">return</span> <span class="n">dot</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><span id="L-3085"><a href="#L-3085"><span class="linenos">3085</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-3086"><a href="#L-3086"><span class="linenos">3086</span></a> <span class="k">pass</span>
+</span><span id="L-3087"><a href="#L-3087"><span class="linenos">3087</span></a>
+</span><span id="L-3088"><a href="#L-3088"><span class="linenos">3088</span></a>
+</span><span id="L-3089"><a href="#L-3089"><span class="linenos">3089</span></a><span class="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-3090"><a href="#L-3090"><span class="linenos">3090</span></a> <span class="k">pass</span>
+</span><span id="L-3091"><a href="#L-3091"><span class="linenos">3091</span></a>
+</span><span id="L-3092"><a href="#L-3092"><span class="linenos">3092</span></a>
+</span><span id="L-3093"><a href="#L-3093"><span class="linenos">3093</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-3094"><a href="#L-3094"><span class="linenos">3094</span></a> <span class="k">pass</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><span id="L-3097"><a href="#L-3097"><span class="linenos">3097</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-3098"><a href="#L-3098"><span class="linenos">3098</span></a> <span class="k">pass</span>
+</span><span id="L-3099"><a href="#L-3099"><span class="linenos">3099</span></a>
+</span><span id="L-3100"><a href="#L-3100"><span class="linenos">3100</span></a>
+</span><span id="L-3101"><a href="#L-3101"><span class="linenos">3101</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-3102"><a href="#L-3102"><span class="linenos">3102</span></a> <span class="k">pass</span>
+</span><span id="L-3103"><a href="#L-3103"><span class="linenos">3103</span></a>
+</span><span id="L-3104"><a href="#L-3104"><span class="linenos">3104</span></a>
+</span><span id="L-3105"><a href="#L-3105"><span class="linenos">3105</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-3106"><a href="#L-3106"><span class="linenos">3106</span></a> <span class="k">pass</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">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-3110"><a href="#L-3110"><span class="linenos">3110</span></a> <span class="k">pass</span>
+</span><span id="L-3111"><a href="#L-3111"><span class="linenos">3111</span></a>
+</span><span id="L-3112"><a href="#L-3112"><span class="linenos">3112</span></a>
+</span><span id="L-3113"><a href="#L-3113"><span class="linenos">3113</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-3114"><a href="#L-3114"><span class="linenos">3114</span></a> <span class="k">pass</span>
+</span><span id="L-3115"><a href="#L-3115"><span class="linenos">3115</span></a>
+</span><span id="L-3116"><a href="#L-3116"><span class="linenos">3116</span></a>
+</span><span id="L-3117"><a href="#L-3117"><span class="linenos">3117</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-3118"><a href="#L-3118"><span class="linenos">3118</span></a> <span class="k">pass</span>
+</span><span id="L-3119"><a href="#L-3119"><span class="linenos">3119</span></a>
+</span><span id="L-3120"><a href="#L-3120"><span class="linenos">3120</span></a>
+</span><span id="L-3121"><a href="#L-3121"><span class="linenos">3121</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-3122"><a href="#L-3122"><span class="linenos">3122</span></a> <span class="k">pass</span>
+</span><span id="L-3123"><a href="#L-3123"><span class="linenos">3123</span></a>
+</span><span id="L-3124"><a href="#L-3124"><span class="linenos">3124</span></a>
+</span><span id="L-3125"><a href="#L-3125"><span class="linenos">3125</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-3126"><a href="#L-3126"><span class="linenos">3126</span></a> <span class="k">pass</span>
+</span><span id="L-3127"><a href="#L-3127"><span class="linenos">3127</span></a>
+</span><span id="L-3128"><a href="#L-3128"><span class="linenos">3128</span></a>
+</span><span id="L-3129"><a href="#L-3129"><span class="linenos">3129</span></a><span class="k">class</span> <span class="nc">IntDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3130"><a href="#L-3130"><span class="linenos">3130</span></a> <span class="k">pass</span>
+</span><span id="L-3131"><a href="#L-3131"><span class="linenos">3131</span></a>
+</span><span id="L-3132"><a href="#L-3132"><span class="linenos">3132</span></a>
+</span><span id="L-3133"><a href="#L-3133"><span class="linenos">3133</span></a><span class="k">class</span> <span class="nc">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-3134"><a href="#L-3134"><span class="linenos">3134</span></a> <span class="k">pass</span>
+</span><span id="L-3135"><a href="#L-3135"><span class="linenos">3135</span></a>
+</span><span id="L-3136"><a href="#L-3136"><span class="linenos">3136</span></a>
+</span><span id="L-3137"><a href="#L-3137"><span class="linenos">3137</span></a><span 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-3138"><a href="#L-3138"><span class="linenos">3138</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-3139"><a href="#L-3139"><span class="linenos">3139</span></a>
+</span><span id="L-3140"><a href="#L-3140"><span class="linenos">3140</span></a>
+</span><span id="L-3141"><a href="#L-3141"><span class="linenos">3141</span></a><span 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-3142"><a href="#L-3142"><span class="linenos">3142</span></a> <span class="k">pass</span>
+</span><span id="L-3143"><a href="#L-3143"><span class="linenos">3143</span></a>
+</span><span id="L-3144"><a href="#L-3144"><span class="linenos">3144</span></a>
+</span><span id="L-3145"><a href="#L-3145"><span class="linenos">3145</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-3146"><a href="#L-3146"><span class="linenos">3146</span></a> <span class="k">pass</span>
</span><span id="L-3147"><a href="#L-3147"><span class="linenos">3147</span></a>
</span><span id="L-3148"><a href="#L-3148"><span class="linenos">3148</span></a>
-</span><span id="L-3149"><a href="#L-3149"><span class="linenos">3149</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-3149"><a href="#L-3149"><span class="linenos">3149</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-3150"><a href="#L-3150"><span class="linenos">3150</span></a> <span class="k">pass</span>
</span><span id="L-3151"><a href="#L-3151"><span class="linenos">3151</span></a>
</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">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3153"><a href="#L-3153"><span class="linenos">3153</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-3154"><a href="#L-3154"><span class="linenos">3154</span></a> <span class="k">pass</span>
</span><span id="L-3155"><a href="#L-3155"><span class="linenos">3155</span></a>
</span><span id="L-3156"><a href="#L-3156"><span class="linenos">3156</span></a>
-</span><span id="L-3157"><a href="#L-3157"><span class="linenos">3157</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-3158"><a href="#L-3158"><span class="linenos">3158</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3157"><a href="#L-3157"><span class="linenos">3157</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-3158"><a href="#L-3158"><span class="linenos">3158</span></a> <span class="k">pass</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><span id="L-3161"><a href="#L-3161"><span class="linenos">3161</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-3161"><a href="#L-3161"><span class="linenos">3161</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-3162"><a href="#L-3162"><span class="linenos">3162</span></a> <span class="k">pass</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><span id="L-3165"><a href="#L-3165"><span class="linenos">3165</span></a><span class="c1"># Special Functions</span>
-</span><span id="L-3166"><a href="#L-3166"><span class="linenos">3166</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-3167"><a href="#L-3167"><span class="linenos">3167</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3165"><a href="#L-3165"><span class="linenos">3165</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-3166"><a href="#L-3166"><span class="linenos">3166</span></a> <span class="k">pass</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><span id="L-3169"><a href="#L-3169"><span class="linenos">3169</span></a> <span class="nd">@property</span>
-</span><span id="L-3170"><a href="#L-3170"><span class="linenos">3170</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-3171"><a href="#L-3171"><span class="linenos">3171</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-3169"><a href="#L-3169"><span class="linenos">3169</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-3170"><a href="#L-3170"><span class="linenos">3170</span></a> <span class="k">pass</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><span id="L-3173"><a href="#L-3173"><span class="linenos">3173</span></a>
-</span><span id="L-3174"><a href="#L-3174"><span class="linenos">3174</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-3175"><a href="#L-3175"><span class="linenos">3175</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3173"><a href="#L-3173"><span class="linenos">3173</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-3174"><a href="#L-3174"><span class="linenos">3174</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-3175"><a href="#L-3175"><span class="linenos">3175</span></a>
</span><span id="L-3176"><a href="#L-3176"><span class="linenos">3176</span></a>
-</span><span id="L-3177"><a href="#L-3177"><span class="linenos">3177</span></a> <span class="nd">@property</span>
-</span><span id="L-3178"><a href="#L-3178"><span class="linenos">3178</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-3179"><a href="#L-3179"><span class="linenos">3179</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-3177"><a href="#L-3177"><span class="linenos">3177</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-3178"><a href="#L-3178"><span class="linenos">3178</span></a> <span class="k">pass</span>
+</span><span id="L-3179"><a href="#L-3179"><span class="linenos">3179</span></a>
</span><span id="L-3180"><a href="#L-3180"><span class="linenos">3180</span></a>
-</span><span id="L-3181"><a href="#L-3181"><span class="linenos">3181</span></a>
-</span><span id="L-3182"><a href="#L-3182"><span class="linenos">3182</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-3183"><a href="#L-3183"><span class="linenos">3183</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3181"><a href="#L-3181"><span class="linenos">3181</span></a><span class="k">class</span> <span class="nc">ArrayOverlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3182"><a href="#L-3182"><span class="linenos">3182</span></a> <span class="k">pass</span>
+</span><span id="L-3183"><a href="#L-3183"><span class="linenos">3183</span></a>
</span><span id="L-3184"><a href="#L-3184"><span class="linenos">3184</span></a>
-</span><span id="L-3185"><a href="#L-3185"><span class="linenos">3185</span></a>
-</span><span id="L-3186"><a href="#L-3186"><span class="linenos">3186</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-3187"><a href="#L-3187"><span class="linenos">3187</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3188"><a href="#L-3188"><span class="linenos">3188</span></a>
+</span><span id="L-3185"><a href="#L-3185"><span class="linenos">3185</span></a><span class="c1"># Unary Expressions</span>
+</span><span id="L-3186"><a href="#L-3186"><span class="linenos">3186</span></a><span class="c1"># (NOT a)</span>
+</span><span id="L-3187"><a href="#L-3187"><span class="linenos">3187</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3188"><a href="#L-3188"><span class="linenos">3188</span></a> <span class="k">pass</span>
</span><span id="L-3189"><a href="#L-3189"><span class="linenos">3189</span></a>
-</span><span id="L-3190"><a href="#L-3190"><span class="linenos">3190</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-3191"><a href="#L-3191"><span class="linenos">3191</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-3192"><a href="#L-3192"><span class="linenos">3192</span></a>
+</span><span id="L-3190"><a href="#L-3190"><span class="linenos">3190</span></a>
+</span><span id="L-3191"><a href="#L-3191"><span class="linenos">3191</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-3192"><a href="#L-3192"><span class="linenos">3192</span></a> <span class="k">pass</span>
</span><span id="L-3193"><a href="#L-3193"><span class="linenos">3193</span></a>
-</span><span id="L-3194"><a href="#L-3194"><span class="linenos">3194</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-3195"><a href="#L-3195"><span class="linenos">3195</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-3196"><a href="#L-3196"><span class="linenos">3196</span></a>
+</span><span id="L-3194"><a href="#L-3194"><span class="linenos">3194</span></a>
+</span><span id="L-3195"><a href="#L-3195"><span class="linenos">3195</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3196"><a href="#L-3196"><span class="linenos">3196</span></a> <span class="k">pass</span>
</span><span id="L-3197"><a href="#L-3197"><span class="linenos">3197</span></a>
-</span><span id="L-3198"><a href="#L-3198"><span class="linenos">3198</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-3199"><a href="#L-3199"><span class="linenos">3199</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3200"><a href="#L-3200"><span class="linenos">3200</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-3201"><a href="#L-3201"><span class="linenos">3201</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-3202"><a href="#L-3202"><span class="linenos">3202</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-3203"><a href="#L-3203"><span class="linenos">3203</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-3204"><a href="#L-3204"><span class="linenos">3204</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-3205"><a href="#L-3205"><span class="linenos">3205</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-3206"><a href="#L-3206"><span class="linenos">3206</span></a> <span class="p">}</span>
-</span><span id="L-3207"><a href="#L-3207"><span class="linenos">3207</span></a>
-</span><span id="L-3208"><a href="#L-3208"><span class="linenos">3208</span></a>
-</span><span id="L-3209"><a href="#L-3209"><span class="linenos">3209</span></a><span class="k">class</span> <span class="nc">TimeUnit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3210"><a href="#L-3210"><span class="linenos">3210</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-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="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-3198"><a href="#L-3198"><span class="linenos">3198</span></a>
+</span><span id="L-3199"><a href="#L-3199"><span class="linenos">3199</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3200"><a href="#L-3200"><span class="linenos">3200</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3201"><a href="#L-3201"><span class="linenos">3201</span></a>
+</span><span id="L-3202"><a href="#L-3202"><span class="linenos">3202</span></a>
+</span><span id="L-3203"><a href="#L-3203"><span class="linenos">3203</span></a><span class="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-3204"><a href="#L-3204"><span class="linenos">3204</span></a> <span class="k">pass</span>
+</span><span id="L-3205"><a href="#L-3205"><span class="linenos">3205</span></a>
+</span><span id="L-3206"><a href="#L-3206"><span class="linenos">3206</span></a>
+</span><span id="L-3207"><a href="#L-3207"><span class="linenos">3207</span></a><span class="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-3208"><a href="#L-3208"><span class="linenos">3208</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3209"><a href="#L-3209"><span class="linenos">3209</span></a>
+</span><span id="L-3210"><a href="#L-3210"><span class="linenos">3210</span></a> <span class="nd">@property</span>
+</span><span id="L-3211"><a href="#L-3211"><span class="linenos">3211</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-3212"><a href="#L-3212"><span class="linenos">3212</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-3213"><a href="#L-3213"><span class="linenos">3213</span></a>
-</span><span id="L-3214"><a href="#L-3214"><span class="linenos">3214</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-3215"><a href="#L-3215"><span class="linenos">3215</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-3216"><a href="#L-3216"><span class="linenos">3216</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="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span>
-</span><span id="L-3217"><a href="#L-3217"><span class="linenos">3217</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="L-3218"><a href="#L-3218"><span class="linenos">3218</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-3219"><a href="#L-3219"><span class="linenos">3219</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
-</span><span id="L-3220"><a href="#L-3220"><span class="linenos">3220</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-3214"><a href="#L-3214"><span class="linenos">3214</span></a>
+</span><span id="L-3215"><a href="#L-3215"><span class="linenos">3215</span></a><span class="k">class</span> <span class="nc">Aliases</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3216"><a href="#L-3216"><span class="linenos">3216</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3217"><a href="#L-3217"><span class="linenos">3217</span></a>
+</span><span id="L-3218"><a href="#L-3218"><span class="linenos">3218</span></a> <span class="nd">@property</span>
+</span><span id="L-3219"><a href="#L-3219"><span class="linenos">3219</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-3220"><a href="#L-3220"><span class="linenos">3220</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-3221"><a href="#L-3221"><span class="linenos">3221</span></a>
</span><span id="L-3222"><a href="#L-3222"><span class="linenos">3222</span></a>
-</span><span id="L-3223"><a href="#L-3223"><span class="linenos">3223</span></a><span class="k">class</span> <span class="nc">Interval</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="L-3224"><a href="#L-3224"><span class="linenos">3224</span></a> <span class="n">arg_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-3223"><a href="#L-3223"><span class="linenos">3223</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-3224"><a href="#L-3224"><span class="linenos">3224</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3225"><a href="#L-3225"><span class="linenos">3225</span></a>
</span><span id="L-3226"><a href="#L-3226"><span class="linenos">3226</span></a>
-</span><span id="L-3227"><a href="#L-3227"><span class="linenos">3227</span></a><span class="k">class</span> <span class="nc">IgnoreNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3228"><a href="#L-3228"><span class="linenos">3228</span></a> <span class="k">pass</span>
+</span><span id="L-3227"><a href="#L-3227"><span class="linenos">3227</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-3228"><a href="#L-3228"><span class="linenos">3228</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3229"><a href="#L-3229"><span class="linenos">3229</span></a>
</span><span id="L-3230"><a href="#L-3230"><span class="linenos">3230</span></a>
-</span><span id="L-3231"><a href="#L-3231"><span class="linenos">3231</span></a><span 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-3232"><a href="#L-3232"><span class="linenos">3232</span></a> <span class="k">pass</span>
+</span><span id="L-3231"><a href="#L-3231"><span class="linenos">3231</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-3232"><a href="#L-3232"><span class="linenos">3232</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3233"><a href="#L-3233"><span class="linenos">3233</span></a>
</span><span id="L-3234"><a href="#L-3234"><span class="linenos">3234</span></a>
-</span><span id="L-3235"><a href="#L-3235"><span class="linenos">3235</span></a><span class="c1"># Functions</span>
-</span><span id="L-3236"><a href="#L-3236"><span class="linenos">3236</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-3237"><a href="#L-3237"><span class="linenos">3237</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3238"><a href="#L-3238"><span class="linenos">3238</span></a><span class="sd"> The base class for all function expressions.</span>
-</span><span id="L-3239"><a href="#L-3239"><span class="linenos">3239</span></a>
-</span><span id="L-3240"><a href="#L-3240"><span class="linenos">3240</span></a><span class="sd"> Attributes:</span>
-</span><span id="L-3241"><a href="#L-3241"><span class="linenos">3241</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-3242"><a href="#L-3242"><span class="linenos">3242</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-3243"><a href="#L-3243"><span class="linenos">3243</span></a><span class="sd"> _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)</span>
-</span><span id="L-3244"><a href="#L-3244"><span class="linenos">3244</span></a><span class="sd"> for this function expression. These values are used to map this node to a name during parsing</span>
-</span><span id="L-3245"><a href="#L-3245"><span class="linenos">3245</span></a><span class="sd"> as well as to provide the function&#39;s name during SQL string generation. By default the SQL</span>
-</span><span id="L-3246"><a href="#L-3246"><span class="linenos">3246</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
-</span><span id="L-3247"><a href="#L-3247"><span class="linenos">3247</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3235"><a href="#L-3235"><span class="linenos">3235</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-3236"><a href="#L-3236"><span class="linenos">3236</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-3237"><a href="#L-3237"><span class="linenos">3237</span></a>
+</span><span id="L-3238"><a href="#L-3238"><span class="linenos">3238</span></a>
+</span><span id="L-3239"><a href="#L-3239"><span class="linenos">3239</span></a><span 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-3240"><a href="#L-3240"><span class="linenos">3240</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3241"><a href="#L-3241"><span class="linenos">3241</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-3242"><a href="#L-3242"><span class="linenos">3242</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-3243"><a href="#L-3243"><span class="linenos">3243</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-3244"><a href="#L-3244"><span class="linenos">3244</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-3245"><a href="#L-3245"><span class="linenos">3245</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-3246"><a href="#L-3246"><span class="linenos">3246</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-3247"><a href="#L-3247"><span class="linenos">3247</span></a> <span class="p">}</span>
</span><span id="L-3248"><a href="#L-3248"><span class="linenos">3248</span></a>
-</span><span id="L-3249"><a href="#L-3249"><span class="linenos">3249</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="L-3250"><a href="#L-3250"><span class="linenos">3250</span></a>
-</span><span id="L-3251"><a href="#L-3251"><span class="linenos">3251</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-3252"><a href="#L-3252"><span class="linenos">3252</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-3253"><a href="#L-3253"><span class="linenos">3253</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-3254"><a href="#L-3254"><span class="linenos">3254</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-3255"><a href="#L-3255"><span class="linenos">3255</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
-</span><span id="L-3256"><a href="#L-3256"><span class="linenos">3256</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-3257"><a href="#L-3257"><span class="linenos">3257</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-3258"><a href="#L-3258"><span class="linenos">3258</span></a>
-</span><span id="L-3259"><a href="#L-3259"><span class="linenos">3259</span></a> <span class="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-3260"><a href="#L-3260"><span class="linenos">3260</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-3261"><a href="#L-3261"><span class="linenos">3261</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-3262"><a href="#L-3262"><span class="linenos">3262</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-3249"><a href="#L-3249"><span class="linenos">3249</span></a>
+</span><span id="L-3250"><a href="#L-3250"><span class="linenos">3250</span></a><span class="k">class</span> <span class="nc">TimeUnit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3251"><a href="#L-3251"><span class="linenos">3251</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-3252"><a href="#L-3252"><span class="linenos">3252</span></a>
+</span><span id="L-3253"><a href="#L-3253"><span class="linenos">3253</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-3254"><a href="#L-3254"><span class="linenos">3254</span></a>
+</span><span id="L-3255"><a href="#L-3255"><span class="linenos">3255</span></a> <span class="k">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-3256"><a href="#L-3256"><span class="linenos">3256</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-3257"><a href="#L-3257"><span class="linenos">3257</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="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span>
+</span><span id="L-3258"><a href="#L-3258"><span class="linenos">3258</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="L-3259"><a href="#L-3259"><span class="linenos">3259</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-3260"><a href="#L-3260"><span class="linenos">3260</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
+</span><span id="L-3261"><a href="#L-3261"><span class="linenos">3261</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-3262"><a href="#L-3262"><span class="linenos">3262</span></a>
</span><span id="L-3263"><a href="#L-3263"><span class="linenos">3263</span></a>
-</span><span id="L-3264"><a href="#L-3264"><span class="linenos">3264</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-3265"><a href="#L-3265"><span class="linenos">3265</span></a>
-</span><span id="L-3266"><a href="#L-3266"><span class="linenos">3266</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-3267"><a href="#L-3267"><span class="linenos">3267</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-3268"><a href="#L-3268"><span class="linenos">3268</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-3269"><a href="#L-3269"><span class="linenos">3269</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
-</span><span id="L-3270"><a href="#L-3270"><span class="linenos">3270</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
-</span><span id="L-3271"><a href="#L-3271"><span class="linenos">3271</span></a> <span class="p">)</span>
-</span><span id="L-3272"><a href="#L-3272"><span class="linenos">3272</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-3273"><a href="#L-3273"><span class="linenos">3273</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-3274"><a href="#L-3274"><span class="linenos">3274</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-3264"><a href="#L-3264"><span class="linenos">3264</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-3265"><a href="#L-3265"><span class="linenos">3265</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3266"><a href="#L-3266"><span class="linenos">3266</span></a>
+</span><span id="L-3267"><a href="#L-3267"><span class="linenos">3267</span></a>
+</span><span id="L-3268"><a href="#L-3268"><span class="linenos">3268</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-3269"><a href="#L-3269"><span class="linenos">3269</span></a> <span class="k">pass</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><span id="L-3272"><a href="#L-3272"><span class="linenos">3272</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-3273"><a href="#L-3273"><span class="linenos">3273</span></a> <span class="k">pass</span>
+</span><span id="L-3274"><a href="#L-3274"><span class="linenos">3274</span></a>
</span><span id="L-3275"><a href="#L-3275"><span class="linenos">3275</span></a>
-</span><span id="L-3276"><a href="#L-3276"><span class="linenos">3276</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-3277"><a href="#L-3277"><span class="linenos">3277</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-3278"><a href="#L-3278"><span class="linenos">3278</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-3279"><a href="#L-3279"><span class="linenos">3279</span></a>
-</span><span id="L-3280"><a href="#L-3280"><span class="linenos">3280</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-3281"><a href="#L-3281"><span class="linenos">3281</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-3282"><a href="#L-3282"><span class="linenos">3282</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-3283"><a href="#L-3283"><span class="linenos">3283</span></a>
-</span><span id="L-3284"><a href="#L-3284"><span class="linenos">3284</span></a>
-</span><span id="L-3285"><a href="#L-3285"><span class="linenos">3285</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-3286"><a href="#L-3286"><span class="linenos">3286</span></a> <span class="k">pass</span>
-</span><span id="L-3287"><a href="#L-3287"><span class="linenos">3287</span></a>
-</span><span id="L-3288"><a href="#L-3288"><span class="linenos">3288</span></a>
-</span><span id="L-3289"><a href="#L-3289"><span class="linenos">3289</span></a><span 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-3290"><a href="#L-3290"><span class="linenos">3290</span></a> <span class="k">pass</span>
+</span><span id="L-3276"><a href="#L-3276"><span class="linenos">3276</span></a><span class="c1"># Functions</span>
+</span><span id="L-3277"><a href="#L-3277"><span class="linenos">3277</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-3278"><a href="#L-3278"><span class="linenos">3278</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3279"><a href="#L-3279"><span class="linenos">3279</span></a><span class="sd"> The base class for all function expressions.</span>
+</span><span id="L-3280"><a href="#L-3280"><span class="linenos">3280</span></a>
+</span><span id="L-3281"><a href="#L-3281"><span class="linenos">3281</span></a><span class="sd"> Attributes:</span>
+</span><span id="L-3282"><a href="#L-3282"><span class="linenos">3282</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-3283"><a href="#L-3283"><span class="linenos">3283</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-3284"><a href="#L-3284"><span class="linenos">3284</span></a><span class="sd"> _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)</span>
+</span><span id="L-3285"><a href="#L-3285"><span class="linenos">3285</span></a><span class="sd"> for this function expression. These values are used to map this node to a name during parsing</span>
+</span><span id="L-3286"><a href="#L-3286"><span class="linenos">3286</span></a><span class="sd"> as well as to provide the function&#39;s name during SQL string generation. By default the SQL</span>
+</span><span id="L-3287"><a href="#L-3287"><span class="linenos">3287</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
+</span><span id="L-3288"><a href="#L-3288"><span class="linenos">3288</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3289"><a href="#L-3289"><span class="linenos">3289</span></a>
+</span><span id="L-3290"><a href="#L-3290"><span class="linenos">3290</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="L-3291"><a href="#L-3291"><span class="linenos">3291</span></a>
-</span><span id="L-3292"><a href="#L-3292"><span class="linenos">3292</span></a>
-</span><span id="L-3293"><a href="#L-3293"><span class="linenos">3293</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-3294"><a href="#L-3294"><span class="linenos">3294</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3295"><a href="#L-3295"><span class="linenos">3295</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3296"><a href="#L-3296"><span class="linenos">3296</span></a>
-</span><span id="L-3297"><a href="#L-3297"><span class="linenos">3297</span></a>
-</span><span id="L-3298"><a href="#L-3298"><span class="linenos">3298</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/hll</span>
-</span><span id="L-3299"><a href="#L-3299"><span class="linenos">3299</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_HLL_function.html</span>
-</span><span id="L-3300"><a href="#L-3300"><span class="linenos">3300</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-3301"><a href="#L-3301"><span class="linenos">3301</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3302"><a href="#L-3302"><span class="linenos">3302</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3303"><a href="#L-3303"><span class="linenos">3303</span></a>
+</span><span id="L-3292"><a href="#L-3292"><span class="linenos">3292</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-3293"><a href="#L-3293"><span class="linenos">3293</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-3294"><a href="#L-3294"><span class="linenos">3294</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-3295"><a href="#L-3295"><span class="linenos">3295</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-3296"><a href="#L-3296"><span class="linenos">3296</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
+</span><span id="L-3297"><a href="#L-3297"><span class="linenos">3297</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-3298"><a href="#L-3298"><span class="linenos">3298</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-3299"><a href="#L-3299"><span class="linenos">3299</span></a>
+</span><span id="L-3300"><a href="#L-3300"><span class="linenos">3300</span></a> <span class="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-3301"><a href="#L-3301"><span class="linenos">3301</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-3302"><a href="#L-3302"><span class="linenos">3302</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-3303"><a href="#L-3303"><span class="linenos">3303</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-3304"><a href="#L-3304"><span class="linenos">3304</span></a>
-</span><span id="L-3305"><a href="#L-3305"><span class="linenos">3305</span></a><span 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-3306"><a href="#L-3306"><span class="linenos">3306</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3307"><a href="#L-3307"><span class="linenos">3307</span></a>
-</span><span id="L-3308"><a href="#L-3308"><span class="linenos">3308</span></a>
-</span><span id="L-3309"><a href="#L-3309"><span class="linenos">3309</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-3310"><a href="#L-3310"><span class="linenos">3310</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3311"><a href="#L-3311"><span class="linenos">3311</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3312"><a href="#L-3312"><span class="linenos">3312</span></a>
-</span><span id="L-3313"><a href="#L-3313"><span class="linenos">3313</span></a>
-</span><span id="L-3314"><a href="#L-3314"><span class="linenos">3314</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/to_char</span>
-</span><span id="L-3315"><a href="#L-3315"><span class="linenos">3315</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-3316"><a href="#L-3316"><span class="linenos">3316</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3317"><a href="#L-3317"><span class="linenos">3317</span></a>
-</span><span id="L-3318"><a href="#L-3318"><span class="linenos">3318</span></a>
-</span><span id="L-3319"><a href="#L-3319"><span class="linenos">3319</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-3320"><a href="#L-3320"><span class="linenos">3320</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;step&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3321"><a href="#L-3321"><span class="linenos">3321</span></a>
-</span><span id="L-3322"><a href="#L-3322"><span class="linenos">3322</span></a>
-</span><span id="L-3323"><a href="#L-3323"><span class="linenos">3323</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-3324"><a href="#L-3324"><span class="linenos">3324</span></a> <span class="k">pass</span>
+</span><span id="L-3305"><a href="#L-3305"><span class="linenos">3305</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-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="nd">@classmethod</span>
+</span><span id="L-3308"><a href="#L-3308"><span class="linenos">3308</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-3309"><a href="#L-3309"><span class="linenos">3309</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-3310"><a href="#L-3310"><span class="linenos">3310</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
+</span><span id="L-3311"><a href="#L-3311"><span class="linenos">3311</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
+</span><span id="L-3312"><a href="#L-3312"><span class="linenos">3312</span></a> <span class="p">)</span>
+</span><span id="L-3313"><a href="#L-3313"><span class="linenos">3313</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-3314"><a href="#L-3314"><span class="linenos">3314</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-3315"><a href="#L-3315"><span class="linenos">3315</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-3316"><a href="#L-3316"><span class="linenos">3316</span></a>
+</span><span id="L-3317"><a href="#L-3317"><span class="linenos">3317</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-3318"><a href="#L-3318"><span class="linenos">3318</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-3319"><a href="#L-3319"><span class="linenos">3319</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-3320"><a href="#L-3320"><span class="linenos">3320</span></a>
+</span><span id="L-3321"><a href="#L-3321"><span class="linenos">3321</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-3322"><a href="#L-3322"><span class="linenos">3322</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-3323"><a href="#L-3323"><span class="linenos">3323</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-3324"><a href="#L-3324"><span class="linenos">3324</span></a>
</span><span id="L-3325"><a href="#L-3325"><span class="linenos">3325</span></a>
-</span><span id="L-3326"><a href="#L-3326"><span class="linenos">3326</span></a>
-</span><span id="L-3327"><a href="#L-3327"><span class="linenos">3327</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-3328"><a href="#L-3328"><span class="linenos">3328</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3326"><a href="#L-3326"><span class="linenos">3326</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-3327"><a href="#L-3327"><span class="linenos">3327</span></a> <span class="k">pass</span>
+</span><span id="L-3328"><a href="#L-3328"><span class="linenos">3328</span></a>
</span><span id="L-3329"><a href="#L-3329"><span class="linenos">3329</span></a>
-</span><span id="L-3330"><a href="#L-3330"><span class="linenos">3330</span></a>
-</span><span id="L-3331"><a href="#L-3331"><span class="linenos">3331</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-3332"><a href="#L-3332"><span class="linenos">3332</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3330"><a href="#L-3330"><span class="linenos">3330</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-3331"><a href="#L-3331"><span class="linenos">3331</span></a> <span class="k">pass</span>
+</span><span id="L-3332"><a href="#L-3332"><span class="linenos">3332</span></a>
</span><span id="L-3333"><a href="#L-3333"><span class="linenos">3333</span></a>
-</span><span id="L-3334"><a href="#L-3334"><span class="linenos">3334</span></a>
-</span><span id="L-3335"><a href="#L-3335"><span class="linenos">3335</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-3336"><a href="#L-3336"><span class="linenos">3336</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3337"><a href="#L-3337"><span class="linenos">3337</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3334"><a href="#L-3334"><span class="linenos">3334</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-3335"><a href="#L-3335"><span class="linenos">3335</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3336"><a href="#L-3336"><span class="linenos">3336</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3337"><a href="#L-3337"><span class="linenos">3337</span></a>
</span><span id="L-3338"><a href="#L-3338"><span class="linenos">3338</span></a>
-</span><span id="L-3339"><a href="#L-3339"><span class="linenos">3339</span></a>
-</span><span id="L-3340"><a href="#L-3340"><span class="linenos">3340</span></a><span class="k">class</span> <span class="nc">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-3341"><a href="#L-3341"><span class="linenos">3341</span></a> <span class="k">pass</span>
-</span><span id="L-3342"><a href="#L-3342"><span class="linenos">3342</span></a>
-</span><span id="L-3343"><a href="#L-3343"><span class="linenos">3343</span></a>
-</span><span id="L-3344"><a href="#L-3344"><span class="linenos">3344</span></a><span class="k">class</span> <span class="nc">ArrayContained</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3345"><a href="#L-3345"><span class="linenos">3345</span></a> <span class="k">pass</span>
-</span><span id="L-3346"><a href="#L-3346"><span class="linenos">3346</span></a>
-</span><span id="L-3347"><a href="#L-3347"><span class="linenos">3347</span></a>
-</span><span id="L-3348"><a href="#L-3348"><span class="linenos">3348</span></a><span class="k">class</span> <span class="nc">ArrayFilter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3349"><a href="#L-3349"><span class="linenos">3349</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-3350"><a href="#L-3350"><span class="linenos">3350</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-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><span id="L-3353"><a href="#L-3353"><span class="linenos">3353</span></a><span class="k">class</span> <span class="nc">ArrayJoin</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3354"><a href="#L-3354"><span class="linenos">3354</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3355"><a href="#L-3355"><span class="linenos">3355</span></a>
-</span><span id="L-3356"><a href="#L-3356"><span class="linenos">3356</span></a>
-</span><span id="L-3357"><a href="#L-3357"><span class="linenos">3357</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-3358"><a href="#L-3358"><span class="linenos">3358</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3339"><a href="#L-3339"><span class="linenos">3339</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/hll</span>
+</span><span id="L-3340"><a href="#L-3340"><span class="linenos">3340</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_HLL_function.html</span>
+</span><span id="L-3341"><a href="#L-3341"><span class="linenos">3341</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-3342"><a href="#L-3342"><span class="linenos">3342</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3343"><a href="#L-3343"><span class="linenos">3343</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3344"><a href="#L-3344"><span class="linenos">3344</span></a>
+</span><span id="L-3345"><a href="#L-3345"><span class="linenos">3345</span></a>
+</span><span id="L-3346"><a href="#L-3346"><span class="linenos">3346</span></a><span class="k">class</span> <span class="nc">ApproxDistinct</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3347"><a href="#L-3347"><span class="linenos">3347</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3348"><a href="#L-3348"><span class="linenos">3348</span></a>
+</span><span id="L-3349"><a href="#L-3349"><span class="linenos">3349</span></a>
+</span><span id="L-3350"><a href="#L-3350"><span class="linenos">3350</span></a><span class="k">class</span> <span class="nc">Array</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3351"><a href="#L-3351"><span class="linenos">3351</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3352"><a href="#L-3352"><span class="linenos">3352</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</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><span id="L-3355"><a href="#L-3355"><span class="linenos">3355</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/to_char</span>
+</span><span id="L-3356"><a href="#L-3356"><span class="linenos">3356</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-3357"><a href="#L-3357"><span class="linenos">3357</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3358"><a href="#L-3358"><span class="linenos">3358</span></a>
</span><span id="L-3359"><a href="#L-3359"><span class="linenos">3359</span></a>
-</span><span id="L-3360"><a href="#L-3360"><span class="linenos">3360</span></a>
-</span><span id="L-3361"><a href="#L-3361"><span class="linenos">3361</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-3362"><a href="#L-3362"><span class="linenos">3362</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3360"><a href="#L-3360"><span class="linenos">3360</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-3361"><a href="#L-3361"><span class="linenos">3361</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;step&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3362"><a href="#L-3362"><span class="linenos">3362</span></a>
</span><span id="L-3363"><a href="#L-3363"><span class="linenos">3363</span></a>
-</span><span id="L-3364"><a href="#L-3364"><span class="linenos">3364</span></a>
-</span><span id="L-3365"><a href="#L-3365"><span class="linenos">3365</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-3366"><a href="#L-3366"><span class="linenos">3366</span></a> <span class="k">pass</span>
+</span><span id="L-3364"><a href="#L-3364"><span class="linenos">3364</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-3365"><a href="#L-3365"><span class="linenos">3365</span></a> <span class="k">pass</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><span id="L-3368"><a href="#L-3368"><span class="linenos">3368</span></a>
-</span><span id="L-3369"><a href="#L-3369"><span class="linenos">3369</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-3370"><a href="#L-3370"><span class="linenos">3370</span></a> <span class="k">pass</span>
+</span><span id="L-3368"><a href="#L-3368"><span class="linenos">3368</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-3369"><a href="#L-3369"><span class="linenos">3369</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3370"><a href="#L-3370"><span class="linenos">3370</span></a>
</span><span id="L-3371"><a href="#L-3371"><span class="linenos">3371</span></a>
-</span><span id="L-3372"><a href="#L-3372"><span class="linenos">3372</span></a>
-</span><span id="L-3373"><a href="#L-3373"><span class="linenos">3373</span></a><span class="k">class</span> <span class="nc">Avg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3374"><a href="#L-3374"><span class="linenos">3374</span></a> <span class="k">pass</span>
+</span><span id="L-3372"><a href="#L-3372"><span class="linenos">3372</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-3373"><a href="#L-3373"><span class="linenos">3373</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3374"><a href="#L-3374"><span class="linenos">3374</span></a>
</span><span id="L-3375"><a href="#L-3375"><span class="linenos">3375</span></a>
-</span><span id="L-3376"><a href="#L-3376"><span class="linenos">3376</span></a>
-</span><span id="L-3377"><a href="#L-3377"><span class="linenos">3377</span></a><span class="k">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3378"><a href="#L-3378"><span class="linenos">3378</span></a> <span class="k">pass</span>
+</span><span id="L-3376"><a href="#L-3376"><span class="linenos">3376</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-3377"><a href="#L-3377"><span class="linenos">3377</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3378"><a href="#L-3378"><span class="linenos">3378</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3379"><a href="#L-3379"><span class="linenos">3379</span></a>
</span><span id="L-3380"><a href="#L-3380"><span class="linenos">3380</span></a>
-</span><span id="L-3381"><a href="#L-3381"><span class="linenos">3381</span></a><span class="k">class</span> <span class="nc">Case</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3382"><a href="#L-3382"><span class="linenos">3382</span></a> <span class="n">arg_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-3381"><a href="#L-3381"><span class="linenos">3381</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-3382"><a href="#L-3382"><span class="linenos">3382</span></a> <span class="k">pass</span>
</span><span id="L-3383"><a href="#L-3383"><span class="linenos">3383</span></a>
</span><span id="L-3384"><a href="#L-3384"><span class="linenos">3384</span></a>
-</span><span id="L-3385"><a href="#L-3385"><span class="linenos">3385</span></a><span class="k">class</span> <span class="nc">Cast</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3386"><a href="#L-3386"><span class="linenos">3386</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3385"><a href="#L-3385"><span class="linenos">3385</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-3386"><a href="#L-3386"><span class="linenos">3386</span></a> <span class="k">pass</span>
</span><span id="L-3387"><a href="#L-3387"><span class="linenos">3387</span></a>
-</span><span id="L-3388"><a href="#L-3388"><span class="linenos">3388</span></a> <span class="nd">@property</span>
-</span><span id="L-3389"><a href="#L-3389"><span class="linenos">3389</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-3390"><a href="#L-3390"><span class="linenos">3390</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-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="nd">@property</span>
-</span><span id="L-3393"><a href="#L-3393"><span class="linenos">3393</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-3394"><a href="#L-3394"><span class="linenos">3394</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-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="nd">@property</span>
-</span><span id="L-3397"><a href="#L-3397"><span class="linenos">3397</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-3398"><a href="#L-3398"><span class="linenos">3398</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-3399"><a href="#L-3399"><span class="linenos">3399</span></a>
-</span><span id="L-3400"><a href="#L-3400"><span class="linenos">3400</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-3401"><a href="#L-3401"><span class="linenos">3401</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
-</span><span id="L-3402"><a href="#L-3402"><span class="linenos">3402</span></a>
-</span><span id="L-3403"><a href="#L-3403"><span class="linenos">3403</span></a>
-</span><span id="L-3404"><a href="#L-3404"><span class="linenos">3404</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3405"><a href="#L-3405"><span class="linenos">3405</span></a> <span class="k">pass</span>
-</span><span id="L-3406"><a href="#L-3406"><span class="linenos">3406</span></a>
-</span><span id="L-3407"><a href="#L-3407"><span class="linenos">3407</span></a>
-</span><span id="L-3408"><a href="#L-3408"><span class="linenos">3408</span></a><span class="k">class</span> <span class="nc">TryCast</span><span class="p">(</span><span class="n">Cast</span><span class="p">):</span>
-</span><span id="L-3409"><a href="#L-3409"><span class="linenos">3409</span></a> <span class="k">pass</span>
-</span><span id="L-3410"><a href="#L-3410"><span class="linenos">3410</span></a>
-</span><span id="L-3411"><a href="#L-3411"><span class="linenos">3411</span></a>
-</span><span id="L-3412"><a href="#L-3412"><span class="linenos">3412</span></a><span class="k">class</span> <span class="nc">Ceil</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3413"><a href="#L-3413"><span class="linenos">3413</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3414"><a href="#L-3414"><span class="linenos">3414</span></a> <span 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-3415"><a href="#L-3415"><span class="linenos">3415</span></a>
+</span><span id="L-3388"><a href="#L-3388"><span class="linenos">3388</span></a>
+</span><span id="L-3389"><a href="#L-3389"><span class="linenos">3389</span></a><span class="k">class</span> <span class="nc">ArrayFilter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3390"><a href="#L-3390"><span class="linenos">3390</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3391"><a href="#L-3391"><span class="linenos">3391</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-3392"><a href="#L-3392"><span class="linenos">3392</span></a>
+</span><span id="L-3393"><a href="#L-3393"><span class="linenos">3393</span></a>
+</span><span id="L-3394"><a href="#L-3394"><span class="linenos">3394</span></a><span class="k">class</span> <span class="nc">ArrayJoin</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3395"><a href="#L-3395"><span class="linenos">3395</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-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><span id="L-3398"><a href="#L-3398"><span class="linenos">3398</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-3399"><a href="#L-3399"><span class="linenos">3399</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3400"><a href="#L-3400"><span class="linenos">3400</span></a>
+</span><span id="L-3401"><a href="#L-3401"><span class="linenos">3401</span></a>
+</span><span id="L-3402"><a href="#L-3402"><span class="linenos">3402</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-3403"><a href="#L-3403"><span class="linenos">3403</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3404"><a href="#L-3404"><span class="linenos">3404</span></a>
+</span><span id="L-3405"><a href="#L-3405"><span class="linenos">3405</span></a>
+</span><span id="L-3406"><a href="#L-3406"><span class="linenos">3406</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-3407"><a href="#L-3407"><span class="linenos">3407</span></a> <span class="k">pass</span>
+</span><span id="L-3408"><a href="#L-3408"><span class="linenos">3408</span></a>
+</span><span id="L-3409"><a href="#L-3409"><span class="linenos">3409</span></a>
+</span><span id="L-3410"><a href="#L-3410"><span class="linenos">3410</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-3411"><a href="#L-3411"><span class="linenos">3411</span></a> <span class="k">pass</span>
+</span><span id="L-3412"><a href="#L-3412"><span class="linenos">3412</span></a>
+</span><span id="L-3413"><a href="#L-3413"><span class="linenos">3413</span></a>
+</span><span id="L-3414"><a href="#L-3414"><span class="linenos">3414</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-3415"><a href="#L-3415"><span class="linenos">3415</span></a> <span class="k">pass</span>
</span><span id="L-3416"><a href="#L-3416"><span class="linenos">3416</span></a>
-</span><span id="L-3417"><a href="#L-3417"><span class="linenos">3417</span></a><span 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-3418"><a href="#L-3418"><span class="linenos">3418</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3419"><a href="#L-3419"><span class="linenos">3419</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3417"><a href="#L-3417"><span class="linenos">3417</span></a>
+</span><span id="L-3418"><a href="#L-3418"><span class="linenos">3418</span></a><span class="k">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3419"><a href="#L-3419"><span class="linenos">3419</span></a> <span class="k">pass</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><span id="L-3422"><a href="#L-3422"><span class="linenos">3422</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-3423"><a href="#L-3423"><span class="linenos">3423</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-3424"><a href="#L-3424"><span class="linenos">3424</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3422"><a href="#L-3422"><span class="linenos">3422</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-3423"><a href="#L-3423"><span class="linenos">3423</span></a> <span class="n">arg_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-3424"><a href="#L-3424"><span class="linenos">3424</span></a>
</span><span id="L-3425"><a href="#L-3425"><span class="linenos">3425</span></a>
-</span><span id="L-3426"><a href="#L-3426"><span class="linenos">3426</span></a>
-</span><span id="L-3427"><a href="#L-3427"><span class="linenos">3427</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-3428"><a href="#L-3428"><span class="linenos">3428</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-3429"><a href="#L-3429"><span class="linenos">3429</span></a>
-</span><span id="L-3430"><a href="#L-3430"><span class="linenos">3430</span></a>
-</span><span id="L-3431"><a href="#L-3431"><span class="linenos">3431</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-3432"><a href="#L-3432"><span class="linenos">3432</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3433"><a href="#L-3433"><span class="linenos">3433</span></a>
-</span><span id="L-3434"><a href="#L-3434"><span class="linenos">3434</span></a>
-</span><span id="L-3435"><a href="#L-3435"><span class="linenos">3435</span></a><span class="k">class</span> <span class="nc">CountIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3436"><a href="#L-3436"><span class="linenos">3436</span></a> <span class="k">pass</span>
-</span><span id="L-3437"><a href="#L-3437"><span class="linenos">3437</span></a>
-</span><span id="L-3438"><a href="#L-3438"><span class="linenos">3438</span></a>
-</span><span id="L-3439"><a href="#L-3439"><span class="linenos">3439</span></a><span class="k">class</span> <span class="nc">CurrentDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3440"><a href="#L-3440"><span class="linenos">3440</span></a> <span class="n">arg_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-3441"><a href="#L-3441"><span class="linenos">3441</span></a>
-</span><span id="L-3442"><a href="#L-3442"><span class="linenos">3442</span></a>
-</span><span id="L-3443"><a href="#L-3443"><span class="linenos">3443</span></a><span class="k">class</span> <span class="nc">CurrentDatetime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3444"><a href="#L-3444"><span class="linenos">3444</span></a> <span class="n">arg_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-3445"><a href="#L-3445"><span class="linenos">3445</span></a>
-</span><span id="L-3446"><a href="#L-3446"><span class="linenos">3446</span></a>
-</span><span id="L-3447"><a href="#L-3447"><span class="linenos">3447</span></a><span class="k">class</span> <span class="nc">CurrentTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3448"><a href="#L-3448"><span class="linenos">3448</span></a> <span class="n">arg_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-3449"><a href="#L-3449"><span class="linenos">3449</span></a>
-</span><span id="L-3450"><a href="#L-3450"><span class="linenos">3450</span></a>
-</span><span id="L-3451"><a href="#L-3451"><span class="linenos">3451</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-3452"><a href="#L-3452"><span class="linenos">3452</span></a> <span class="n">arg_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-3453"><a href="#L-3453"><span class="linenos">3453</span></a>
-</span><span id="L-3454"><a href="#L-3454"><span class="linenos">3454</span></a>
-</span><span id="L-3455"><a href="#L-3455"><span class="linenos">3455</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="L-3456"><a href="#L-3456"><span class="linenos">3456</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3426"><a href="#L-3426"><span class="linenos">3426</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-3427"><a href="#L-3427"><span class="linenos">3427</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3428"><a href="#L-3428"><span class="linenos">3428</span></a>
+</span><span id="L-3429"><a href="#L-3429"><span class="linenos">3429</span></a> <span class="nd">@property</span>
+</span><span id="L-3430"><a href="#L-3430"><span class="linenos">3430</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-3431"><a href="#L-3431"><span class="linenos">3431</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-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="nd">@property</span>
+</span><span id="L-3434"><a href="#L-3434"><span class="linenos">3434</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-3435"><a href="#L-3435"><span class="linenos">3435</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-3436"><a href="#L-3436"><span class="linenos">3436</span></a>
+</span><span id="L-3437"><a href="#L-3437"><span class="linenos">3437</span></a> <span class="nd">@property</span>
+</span><span id="L-3438"><a href="#L-3438"><span class="linenos">3438</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-3439"><a href="#L-3439"><span class="linenos">3439</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-3440"><a href="#L-3440"><span class="linenos">3440</span></a>
+</span><span id="L-3441"><a href="#L-3441"><span class="linenos">3441</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-3442"><a href="#L-3442"><span class="linenos">3442</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
+</span><span id="L-3443"><a href="#L-3443"><span class="linenos">3443</span></a>
+</span><span id="L-3444"><a href="#L-3444"><span class="linenos">3444</span></a>
+</span><span id="L-3445"><a href="#L-3445"><span class="linenos">3445</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3446"><a href="#L-3446"><span class="linenos">3446</span></a> <span class="k">pass</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><span id="L-3449"><a href="#L-3449"><span class="linenos">3449</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-3450"><a href="#L-3450"><span class="linenos">3450</span></a> <span class="k">pass</span>
+</span><span id="L-3451"><a href="#L-3451"><span class="linenos">3451</span></a>
+</span><span id="L-3452"><a href="#L-3452"><span class="linenos">3452</span></a>
+</span><span id="L-3453"><a href="#L-3453"><span class="linenos">3453</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-3454"><a href="#L-3454"><span class="linenos">3454</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3455"><a href="#L-3455"><span class="linenos">3455</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-3456"><a href="#L-3456"><span class="linenos">3456</span></a>
</span><span id="L-3457"><a href="#L-3457"><span class="linenos">3457</span></a>
-</span><span id="L-3458"><a href="#L-3458"><span class="linenos">3458</span></a>
-</span><span id="L-3459"><a href="#L-3459"><span class="linenos">3459</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="L-3460"><a href="#L-3460"><span class="linenos">3460</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3458"><a href="#L-3458"><span class="linenos">3458</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-3459"><a href="#L-3459"><span class="linenos">3459</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3460"><a href="#L-3460"><span class="linenos">3460</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</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><span id="L-3463"><a href="#L-3463"><span class="linenos">3463</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-3464"><a href="#L-3464"><span class="linenos">3464</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-3465"><a href="#L-3465"><span class="linenos">3465</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3463"><a href="#L-3463"><span class="linenos">3463</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-3464"><a href="#L-3464"><span class="linenos">3464</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-3465"><a href="#L-3465"><span class="linenos">3465</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3466"><a href="#L-3466"><span class="linenos">3466</span></a>
</span><span id="L-3467"><a href="#L-3467"><span class="linenos">3467</span></a>
-</span><span id="L-3468"><a href="#L-3468"><span class="linenos">3468</span></a><span class="k">class</span> <span class="nc">DateTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3469"><a href="#L-3469"><span class="linenos">3469</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3468"><a href="#L-3468"><span class="linenos">3468</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-3469"><a href="#L-3469"><span class="linenos">3469</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-3470"><a href="#L-3470"><span class="linenos">3470</span></a>
</span><span id="L-3471"><a href="#L-3471"><span class="linenos">3471</span></a>
-</span><span id="L-3472"><a href="#L-3472"><span class="linenos">3472</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="L-3473"><a href="#L-3473"><span class="linenos">3473</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3472"><a href="#L-3472"><span class="linenos">3472</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-3473"><a href="#L-3473"><span class="linenos">3473</span></a> <span class="n">arg_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-3474"><a href="#L-3474"><span class="linenos">3474</span></a>
</span><span id="L-3475"><a href="#L-3475"><span class="linenos">3475</span></a>
-</span><span id="L-3476"><a href="#L-3476"><span class="linenos">3476</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="L-3477"><a href="#L-3477"><span class="linenos">3477</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3476"><a href="#L-3476"><span class="linenos">3476</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-3477"><a href="#L-3477"><span class="linenos">3477</span></a> <span class="k">pass</span>
</span><span id="L-3478"><a href="#L-3478"><span class="linenos">3478</span></a>
</span><span id="L-3479"><a href="#L-3479"><span class="linenos">3479</span></a>
-</span><span id="L-3480"><a href="#L-3480"><span class="linenos">3480</span></a><span class="k">class</span> <span class="nc">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-3481"><a href="#L-3481"><span class="linenos">3481</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3480"><a href="#L-3480"><span class="linenos">3480</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-3481"><a href="#L-3481"><span class="linenos">3481</span></a> <span class="n">arg_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-3482"><a href="#L-3482"><span class="linenos">3482</span></a>
</span><span id="L-3483"><a href="#L-3483"><span class="linenos">3483</span></a>
-</span><span id="L-3484"><a href="#L-3484"><span class="linenos">3484</span></a><span class="k">class</span> <span class="nc">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-3485"><a href="#L-3485"><span class="linenos">3485</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3484"><a href="#L-3484"><span class="linenos">3484</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-3485"><a href="#L-3485"><span class="linenos">3485</span></a> <span class="n">arg_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-3486"><a href="#L-3486"><span class="linenos">3486</span></a>
</span><span id="L-3487"><a href="#L-3487"><span class="linenos">3487</span></a>
-</span><span id="L-3488"><a href="#L-3488"><span class="linenos">3488</span></a><span class="k">class</span> <span class="nc">DayOfWeek</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3489"><a href="#L-3489"><span class="linenos">3489</span></a> <span class="n">_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-3488"><a href="#L-3488"><span class="linenos">3488</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-3489"><a href="#L-3489"><span class="linenos">3489</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3490"><a href="#L-3490"><span class="linenos">3490</span></a>
</span><span id="L-3491"><a href="#L-3491"><span class="linenos">3491</span></a>
-</span><span id="L-3492"><a href="#L-3492"><span class="linenos">3492</span></a><span class="k">class</span> <span class="nc">DayOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3493"><a href="#L-3493"><span class="linenos">3493</span></a> <span class="n">_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-3492"><a href="#L-3492"><span class="linenos">3492</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-3493"><a href="#L-3493"><span class="linenos">3493</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3494"><a href="#L-3494"><span class="linenos">3494</span></a>
</span><span id="L-3495"><a href="#L-3495"><span class="linenos">3495</span></a>
-</span><span id="L-3496"><a href="#L-3496"><span class="linenos">3496</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-3497"><a href="#L-3497"><span class="linenos">3497</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-3496"><a href="#L-3496"><span class="linenos">3496</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-3497"><a href="#L-3497"><span class="linenos">3497</span></a> <span class="n">arg_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-3498"><a href="#L-3498"><span class="linenos">3498</span></a>
</span><span id="L-3499"><a href="#L-3499"><span class="linenos">3499</span></a>
-</span><span id="L-3500"><a href="#L-3500"><span class="linenos">3500</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-3501"><a href="#L-3501"><span class="linenos">3501</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-3500"><a href="#L-3500"><span class="linenos">3500</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="L-3501"><a href="#L-3501"><span class="linenos">3501</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3502"><a href="#L-3502"><span class="linenos">3502</span></a>
</span><span id="L-3503"><a href="#L-3503"><span class="linenos">3503</span></a>
-</span><span id="L-3504"><a href="#L-3504"><span class="linenos">3504</span></a><span class="k">class</span> <span class="nc">LastDateOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3505"><a href="#L-3505"><span class="linenos">3505</span></a> <span class="k">pass</span>
+</span><span id="L-3504"><a href="#L-3504"><span class="linenos">3504</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="L-3505"><a href="#L-3505"><span class="linenos">3505</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3506"><a href="#L-3506"><span class="linenos">3506</span></a>
</span><span id="L-3507"><a href="#L-3507"><span class="linenos">3507</span></a>
-</span><span id="L-3508"><a href="#L-3508"><span class="linenos">3508</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-3509"><a href="#L-3509"><span class="linenos">3509</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-3510"><a href="#L-3510"><span class="linenos">3510</span></a>
+</span><span id="L-3508"><a href="#L-3508"><span class="linenos">3508</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-3509"><a href="#L-3509"><span class="linenos">3509</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-3510"><a href="#L-3510"><span class="linenos">3510</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3511"><a href="#L-3511"><span class="linenos">3511</span></a>
-</span><span id="L-3512"><a href="#L-3512"><span class="linenos">3512</span></a><span class="k">class</span> <span class="nc">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-3513"><a href="#L-3513"><span class="linenos">3513</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3514"><a href="#L-3514"><span class="linenos">3514</span></a>
+</span><span id="L-3512"><a href="#L-3512"><span class="linenos">3512</span></a>
+</span><span id="L-3513"><a href="#L-3513"><span class="linenos">3513</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-3514"><a href="#L-3514"><span class="linenos">3514</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3515"><a href="#L-3515"><span class="linenos">3515</span></a>
-</span><span id="L-3516"><a href="#L-3516"><span class="linenos">3516</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-3517"><a href="#L-3517"><span class="linenos">3517</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3518"><a href="#L-3518"><span class="linenos">3518</span></a>
+</span><span id="L-3516"><a href="#L-3516"><span class="linenos">3516</span></a>
+</span><span id="L-3517"><a href="#L-3517"><span class="linenos">3517</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="L-3518"><a href="#L-3518"><span class="linenos">3518</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3519"><a href="#L-3519"><span class="linenos">3519</span></a>
-</span><span id="L-3520"><a href="#L-3520"><span class="linenos">3520</span></a><span 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-3521"><a href="#L-3521"><span class="linenos">3521</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3522"><a href="#L-3522"><span class="linenos">3522</span></a>
+</span><span id="L-3520"><a href="#L-3520"><span class="linenos">3520</span></a>
+</span><span id="L-3521"><a href="#L-3521"><span class="linenos">3521</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="L-3522"><a href="#L-3522"><span class="linenos">3522</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-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">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-3525"><a href="#L-3525"><span class="linenos">3525</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3526"><a href="#L-3526"><span class="linenos">3526</span></a>
+</span><span id="L-3524"><a href="#L-3524"><span class="linenos">3524</span></a>
+</span><span id="L-3525"><a href="#L-3525"><span class="linenos">3525</span></a><span class="k">class</span> <span class="nc">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-3526"><a href="#L-3526"><span class="linenos">3526</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3527"><a href="#L-3527"><span class="linenos">3527</span></a>
-</span><span id="L-3528"><a href="#L-3528"><span class="linenos">3528</span></a><span 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-3529"><a href="#L-3529"><span class="linenos">3529</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3530"><a href="#L-3530"><span class="linenos">3530</span></a>
+</span><span id="L-3528"><a href="#L-3528"><span class="linenos">3528</span></a>
+</span><span id="L-3529"><a href="#L-3529"><span class="linenos">3529</span></a><span class="k">class</span> <span class="nc">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-3530"><a href="#L-3530"><span class="linenos">3530</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3531"><a href="#L-3531"><span class="linenos">3531</span></a>
-</span><span id="L-3532"><a href="#L-3532"><span class="linenos">3532</span></a><span 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-3533"><a href="#L-3533"><span class="linenos">3533</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3534"><a href="#L-3534"><span class="linenos">3534</span></a>
+</span><span id="L-3532"><a href="#L-3532"><span class="linenos">3532</span></a>
+</span><span id="L-3533"><a href="#L-3533"><span class="linenos">3533</span></a><span class="k">class</span> <span class="nc">DayOfWeek</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3534"><a href="#L-3534"><span class="linenos">3534</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-3535"><a href="#L-3535"><span class="linenos">3535</span></a>
-</span><span id="L-3536"><a href="#L-3536"><span class="linenos">3536</span></a><span 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-3537"><a href="#L-3537"><span class="linenos">3537</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3538"><a href="#L-3538"><span class="linenos">3538</span></a>
+</span><span id="L-3536"><a href="#L-3536"><span class="linenos">3536</span></a>
+</span><span id="L-3537"><a href="#L-3537"><span class="linenos">3537</span></a><span class="k">class</span> <span class="nc">DayOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3538"><a href="#L-3538"><span class="linenos">3538</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-3539"><a href="#L-3539"><span class="linenos">3539</span></a>
-</span><span id="L-3540"><a href="#L-3540"><span class="linenos">3540</span></a><span 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-3541"><a href="#L-3541"><span class="linenos">3541</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3542"><a href="#L-3542"><span class="linenos">3542</span></a>
+</span><span id="L-3540"><a href="#L-3540"><span class="linenos">3540</span></a>
+</span><span id="L-3541"><a href="#L-3541"><span class="linenos">3541</span></a><span class="k">class</span> <span class="nc">DayOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3542"><a href="#L-3542"><span class="linenos">3542</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-3543"><a href="#L-3543"><span class="linenos">3543</span></a>
-</span><span id="L-3544"><a href="#L-3544"><span class="linenos">3544</span></a><span 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-3545"><a href="#L-3545"><span class="linenos">3545</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
-</span><span id="L-3546"><a href="#L-3546"><span class="linenos">3546</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-3544"><a href="#L-3544"><span class="linenos">3544</span></a>
+</span><span id="L-3545"><a href="#L-3545"><span class="linenos">3545</span></a><span class="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-3546"><a href="#L-3546"><span class="linenos">3546</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-3547"><a href="#L-3547"><span class="linenos">3547</span></a>
</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">class</span> <span class="nc">DateStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3549"><a href="#L-3549"><span class="linenos">3549</span></a><span class="k">class</span> <span class="nc">LastDateOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3550"><a href="#L-3550"><span class="linenos">3550</span></a> <span class="k">pass</span>
</span><span id="L-3551"><a href="#L-3551"><span class="linenos">3551</span></a>
</span><span id="L-3552"><a href="#L-3552"><span class="linenos">3552</span></a>
-</span><span id="L-3553"><a href="#L-3553"><span class="linenos">3553</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-3554"><a href="#L-3554"><span class="linenos">3554</span></a> <span class="k">pass</span>
+</span><span id="L-3553"><a href="#L-3553"><span class="linenos">3553</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-3554"><a href="#L-3554"><span class="linenos">3554</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3555"><a href="#L-3555"><span class="linenos">3555</span></a>
</span><span id="L-3556"><a href="#L-3556"><span class="linenos">3556</span></a>
-</span><span id="L-3557"><a href="#L-3557"><span class="linenos">3557</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-3558"><a href="#L-3558"><span class="linenos">3558</span></a> <span class="k">pass</span>
+</span><span id="L-3557"><a href="#L-3557"><span class="linenos">3557</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-3558"><a href="#L-3558"><span class="linenos">3558</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3559"><a href="#L-3559"><span class="linenos">3559</span></a>
</span><span id="L-3560"><a href="#L-3560"><span class="linenos">3560</span></a>
-</span><span id="L-3561"><a href="#L-3561"><span class="linenos">3561</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-3562"><a href="#L-3562"><span class="linenos">3562</span></a> <span class="k">pass</span>
+</span><span id="L-3561"><a href="#L-3561"><span class="linenos">3561</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-3562"><a href="#L-3562"><span class="linenos">3562</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3563"><a href="#L-3563"><span class="linenos">3563</span></a>
</span><span id="L-3564"><a href="#L-3564"><span class="linenos">3564</span></a>
-</span><span id="L-3565"><a href="#L-3565"><span class="linenos">3565</span></a><span class="k">class</span> <span class="nc">Decode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3566"><a href="#L-3566"><span class="linenos">3566</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3565"><a href="#L-3565"><span class="linenos">3565</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-3566"><a href="#L-3566"><span class="linenos">3566</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3567"><a href="#L-3567"><span class="linenos">3567</span></a>
</span><span id="L-3568"><a href="#L-3568"><span class="linenos">3568</span></a>
-</span><span id="L-3569"><a href="#L-3569"><span class="linenos">3569</span></a><span class="k">class</span> <span class="nc">DiToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3570"><a href="#L-3570"><span class="linenos">3570</span></a> <span class="k">pass</span>
+</span><span id="L-3569"><a href="#L-3569"><span class="linenos">3569</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-3570"><a href="#L-3570"><span class="linenos">3570</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3571"><a href="#L-3571"><span class="linenos">3571</span></a>
</span><span id="L-3572"><a href="#L-3572"><span class="linenos">3572</span></a>
-</span><span id="L-3573"><a href="#L-3573"><span class="linenos">3573</span></a><span class="k">class</span> <span class="nc">Encode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3574"><a href="#L-3574"><span class="linenos">3574</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;charset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3573"><a href="#L-3573"><span class="linenos">3573</span></a><span class="k">class</span> <span class="nc">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-3574"><a href="#L-3574"><span class="linenos">3574</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3575"><a href="#L-3575"><span class="linenos">3575</span></a>
</span><span id="L-3576"><a href="#L-3576"><span class="linenos">3576</span></a>
-</span><span id="L-3577"><a href="#L-3577"><span class="linenos">3577</span></a><span class="k">class</span> <span class="nc">Exp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3578"><a href="#L-3578"><span class="linenos">3578</span></a> <span class="k">pass</span>
+</span><span id="L-3577"><a href="#L-3577"><span class="linenos">3577</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-3578"><a href="#L-3578"><span class="linenos">3578</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-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><span id="L-3581"><a href="#L-3581"><span class="linenos">3581</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-3582"><a href="#L-3582"><span class="linenos">3582</span></a> <span class="k">pass</span>
+</span><span id="L-3581"><a href="#L-3581"><span class="linenos">3581</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-3582"><a href="#L-3582"><span class="linenos">3582</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3583"><a href="#L-3583"><span class="linenos">3583</span></a>
</span><span id="L-3584"><a href="#L-3584"><span class="linenos">3584</span></a>
-</span><span id="L-3585"><a href="#L-3585"><span class="linenos">3585</span></a><span class="k">class</span> <span class="nc">ExponentialTimeDecayedAvg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3586"><a href="#L-3586"><span class="linenos">3586</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;time&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;decay&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3585"><a href="#L-3585"><span class="linenos">3585</span></a><span 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-3586"><a href="#L-3586"><span class="linenos">3586</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3587"><a href="#L-3587"><span class="linenos">3587</span></a>
</span><span id="L-3588"><a href="#L-3588"><span class="linenos">3588</span></a>
-</span><span id="L-3589"><a href="#L-3589"><span class="linenos">3589</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-3590"><a href="#L-3590"><span class="linenos">3590</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3591"><a href="#L-3591"><span class="linenos">3591</span></a>
+</span><span id="L-3589"><a href="#L-3589"><span class="linenos">3589</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-3590"><a href="#L-3590"><span class="linenos">3590</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="L-3591"><a href="#L-3591"><span class="linenos">3591</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-3592"><a href="#L-3592"><span class="linenos">3592</span></a>
-</span><span id="L-3593"><a href="#L-3593"><span class="linenos">3593</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-3594"><a href="#L-3594"><span class="linenos">3594</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3595"><a href="#L-3595"><span class="linenos">3595</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3593"><a href="#L-3593"><span class="linenos">3593</span></a>
+</span><span id="L-3594"><a href="#L-3594"><span class="linenos">3594</span></a><span 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-3595"><a href="#L-3595"><span class="linenos">3595</span></a> <span class="k">pass</span>
</span><span id="L-3596"><a href="#L-3596"><span class="linenos">3596</span></a>
</span><span id="L-3597"><a href="#L-3597"><span class="linenos">3597</span></a>
-</span><span id="L-3598"><a href="#L-3598"><span class="linenos">3598</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3599"><a href="#L-3599"><span class="linenos">3599</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;separator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3598"><a href="#L-3598"><span class="linenos">3598</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-3599"><a href="#L-3599"><span class="linenos">3599</span></a> <span class="k">pass</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><span id="L-3602"><a href="#L-3602"><span class="linenos">3602</span></a><span class="k">class</span> <span class="nc">GroupUniqArray</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3603"><a href="#L-3603"><span class="linenos">3603</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3602"><a href="#L-3602"><span class="linenos">3602</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-3603"><a href="#L-3603"><span class="linenos">3603</span></a> <span class="k">pass</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><span id="L-3606"><a href="#L-3606"><span class="linenos">3606</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-3606"><a href="#L-3606"><span class="linenos">3606</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-3607"><a href="#L-3607"><span class="linenos">3607</span></a> <span class="k">pass</span>
</span><span id="L-3608"><a href="#L-3608"><span class="linenos">3608</span></a>
</span><span id="L-3609"><a href="#L-3609"><span class="linenos">3609</span></a>
-</span><span id="L-3610"><a href="#L-3610"><span class="linenos">3610</span></a><span class="k">class</span> <span class="nc">Histogram</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3611"><a href="#L-3611"><span class="linenos">3611</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;bins&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3610"><a href="#L-3610"><span class="linenos">3610</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-3611"><a href="#L-3611"><span class="linenos">3611</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3612"><a href="#L-3612"><span class="linenos">3612</span></a>
</span><span id="L-3613"><a href="#L-3613"><span class="linenos">3613</span></a>
-</span><span id="L-3614"><a href="#L-3614"><span class="linenos">3614</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-3615"><a href="#L-3615"><span class="linenos">3615</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3614"><a href="#L-3614"><span class="linenos">3614</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-3615"><a href="#L-3615"><span class="linenos">3615</span></a> <span class="k">pass</span>
</span><span id="L-3616"><a href="#L-3616"><span class="linenos">3616</span></a>
</span><span id="L-3617"><a href="#L-3617"><span class="linenos">3617</span></a>
-</span><span id="L-3618"><a href="#L-3618"><span class="linenos">3618</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3619"><a href="#L-3619"><span class="linenos">3619</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3620"><a href="#L-3620"><span class="linenos">3620</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
+</span><span id="L-3618"><a href="#L-3618"><span class="linenos">3618</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-3619"><a href="#L-3619"><span class="linenos">3619</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3620"><a href="#L-3620"><span class="linenos">3620</span></a>
</span><span id="L-3621"><a href="#L-3621"><span class="linenos">3621</span></a>
-</span><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="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-3624"><a href="#L-3624"><span class="linenos">3624</span></a> <span class="k">pass</span>
+</span><span id="L-3622"><a href="#L-3622"><span class="linenos">3622</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-3623"><a href="#L-3623"><span class="linenos">3623</span></a> <span class="k">pass</span>
+</span><span id="L-3624"><a href="#L-3624"><span class="linenos">3624</span></a>
</span><span id="L-3625"><a href="#L-3625"><span class="linenos">3625</span></a>
-</span><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="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-3628"><a href="#L-3628"><span class="linenos">3628</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3626"><a href="#L-3626"><span class="linenos">3626</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-3627"><a href="#L-3627"><span class="linenos">3627</span></a> <span class="k">pass</span>
+</span><span id="L-3628"><a href="#L-3628"><span class="linenos">3628</span></a>
</span><span id="L-3629"><a href="#L-3629"><span class="linenos">3629</span></a>
-</span><span id="L-3630"><a href="#L-3630"><span class="linenos">3630</span></a>
-</span><span id="L-3631"><a href="#L-3631"><span class="linenos">3631</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-3632"><a href="#L-3632"><span class="linenos">3632</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3633"><a href="#L-3633"><span class="linenos">3633</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-3634"><a href="#L-3634"><span class="linenos">3634</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-3635"><a href="#L-3635"><span class="linenos">3635</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-3636"><a href="#L-3636"><span class="linenos">3636</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-3637"><a href="#L-3637"><span class="linenos">3637</span></a> <span class="s2">&quot;format_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3638"><a href="#L-3638"><span class="linenos">3638</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-3639"><a href="#L-3639"><span class="linenos">3639</span></a> <span class="p">}</span>
-</span><span id="L-3640"><a href="#L-3640"><span class="linenos">3640</span></a>
+</span><span id="L-3630"><a href="#L-3630"><span class="linenos">3630</span></a><span class="k">class</span> <span class="nc">ExponentialTimeDecayedAvg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3631"><a href="#L-3631"><span class="linenos">3631</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;time&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;decay&quot;</span><span class="p">:</span> <span class="kc">False</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><span id="L-3634"><a href="#L-3634"><span class="linenos">3634</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-3635"><a href="#L-3635"><span class="linenos">3635</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3636"><a href="#L-3636"><span class="linenos">3636</span></a>
+</span><span id="L-3637"><a href="#L-3637"><span class="linenos">3637</span></a>
+</span><span id="L-3638"><a href="#L-3638"><span class="linenos">3638</span></a><span class="k">class</span> <span class="nc">Greatest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3639"><a href="#L-3639"><span class="linenos">3639</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3640"><a href="#L-3640"><span class="linenos">3640</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3641"><a href="#L-3641"><span class="linenos">3641</span></a>
-</span><span id="L-3642"><a href="#L-3642"><span class="linenos">3642</span></a><span class="k">class</span> <span class="nc">JSONBContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3643"><a href="#L-3643"><span class="linenos">3643</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-3644"><a href="#L-3644"><span class="linenos">3644</span></a>
+</span><span id="L-3642"><a href="#L-3642"><span class="linenos">3642</span></a>
+</span><span id="L-3643"><a href="#L-3643"><span class="linenos">3643</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3644"><a href="#L-3644"><span class="linenos">3644</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span 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-3645"><a href="#L-3645"><span class="linenos">3645</span></a>
-</span><span id="L-3646"><a href="#L-3646"><span class="linenos">3646</span></a><span class="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-3647"><a href="#L-3647"><span class="linenos">3647</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-3648"><a href="#L-3648"><span class="linenos">3648</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="k">class</span> <span class="nc">GroupUniqArray</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3648"><a href="#L-3648"><span class="linenos">3648</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3649"><a href="#L-3649"><span class="linenos">3649</span></a>
-</span><span id="L-3650"><a href="#L-3650"><span class="linenos">3650</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
-</span><span id="L-3651"><a href="#L-3651"><span class="linenos">3651</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-3652"><a href="#L-3652"><span class="linenos">3652</span></a>
+</span><span id="L-3650"><a href="#L-3650"><span class="linenos">3650</span></a>
+</span><span id="L-3651"><a href="#L-3651"><span class="linenos">3651</span></a><span 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-3652"><a href="#L-3652"><span class="linenos">3652</span></a> <span class="k">pass</span>
</span><span id="L-3653"><a href="#L-3653"><span class="linenos">3653</span></a>
-</span><span id="L-3654"><a href="#L-3654"><span class="linenos">3654</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
-</span><span id="L-3655"><a href="#L-3655"><span class="linenos">3655</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-3656"><a href="#L-3656"><span class="linenos">3656</span></a>
+</span><span id="L-3654"><a href="#L-3654"><span class="linenos">3654</span></a>
+</span><span id="L-3655"><a href="#L-3655"><span class="linenos">3655</span></a><span class="k">class</span> <span class="nc">Histogram</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3656"><a href="#L-3656"><span class="linenos">3656</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;bins&quot;</span><span class="p">:</span> <span class="kc">False</span><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">class</span> <span class="nc">JSONBExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
-</span><span id="L-3659"><a href="#L-3659"><span class="linenos">3659</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-3660"><a href="#L-3660"><span class="linenos">3660</span></a>
+</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="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-3660"><a href="#L-3660"><span class="linenos">3660</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3661"><a href="#L-3661"><span class="linenos">3661</span></a>
-</span><span id="L-3662"><a href="#L-3662"><span class="linenos">3662</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-3663"><a href="#L-3663"><span class="linenos">3663</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3664"><a href="#L-3664"><span class="linenos">3664</span></a> <span 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-3665"><a href="#L-3665"><span class="linenos">3665</span></a>
+</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="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3664"><a href="#L-3664"><span class="linenos">3664</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-3665"><a href="#L-3665"><span class="linenos">3665</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
</span><span id="L-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="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-3668"><a href="#L-3668"><span class="linenos">3668</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3669"><a href="#L-3669"><span class="linenos">3669</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3667"><a href="#L-3667"><span class="linenos">3667</span></a>
+</span><span id="L-3668"><a href="#L-3668"><span class="linenos">3668</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-3669"><a href="#L-3669"><span class="linenos">3669</span></a> <span class="k">pass</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><span id="L-3672"><a href="#L-3672"><span class="linenos">3672</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-3673"><a href="#L-3673"><span class="linenos">3673</span></a> <span class="k">pass</span>
+</span><span id="L-3672"><a href="#L-3672"><span class="linenos">3672</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-3673"><a href="#L-3673"><span class="linenos">3673</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-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><span id="L-3676"><a href="#L-3676"><span class="linenos">3676</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-3676"><a href="#L-3676"><span class="linenos">3676</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-3677"><a href="#L-3677"><span class="linenos">3677</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3678"><a href="#L-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="L-3679"><a href="#L-3679"><span class="linenos">3679</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-3680"><a href="#L-3680"><span class="linenos">3680</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-3681"><a href="#L-3681"><span class="linenos">3681</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-3682"><a href="#L-3682"><span class="linenos">3682</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-3683"><a href="#L-3683"><span class="linenos">3683</span></a> <span class="p">}</span>
-</span><span id="L-3684"><a href="#L-3684"><span class="linenos">3684</span></a>
+</span><span id="L-3678"><a href="#L-3678"><span class="linenos">3678</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-3679"><a href="#L-3679"><span class="linenos">3679</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-3680"><a href="#L-3680"><span class="linenos">3680</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-3681"><a href="#L-3681"><span class="linenos">3681</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-3682"><a href="#L-3682"><span class="linenos">3682</span></a> <span class="s2">&quot;format_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3683"><a href="#L-3683"><span class="linenos">3683</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-3684"><a href="#L-3684"><span class="linenos">3684</span></a> <span class="p">}</span>
</span><span id="L-3685"><a href="#L-3685"><span class="linenos">3685</span></a>
-</span><span id="L-3686"><a href="#L-3686"><span class="linenos">3686</span></a><span 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-3687"><a href="#L-3687"><span class="linenos">3687</span></a> <span class="k">pass</span>
-</span><span id="L-3688"><a href="#L-3688"><span class="linenos">3688</span></a>
+</span><span id="L-3686"><a href="#L-3686"><span class="linenos">3686</span></a>
+</span><span id="L-3687"><a href="#L-3687"><span class="linenos">3687</span></a><span class="k">class</span> <span class="nc">JSONBContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3688"><a href="#L-3688"><span class="linenos">3688</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-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">class</span> <span class="nc">Log</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3691"><a href="#L-3691"><span class="linenos">3691</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3692"><a href="#L-3692"><span class="linenos">3692</span></a>
+</span><span id="L-3690"><a href="#L-3690"><span class="linenos">3690</span></a>
+</span><span id="L-3691"><a href="#L-3691"><span class="linenos">3691</span></a><span class="k">class</span> <span class="nc">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-3692"><a href="#L-3692"><span class="linenos">3692</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-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="k">class</span> <span class="nc">Log2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3695"><a href="#L-3695"><span class="linenos">3695</span></a> <span class="k">pass</span>
-</span><span id="L-3696"><a href="#L-3696"><span class="linenos">3696</span></a>
+</span><span id="L-3694"><a href="#L-3694"><span class="linenos">3694</span></a>
+</span><span id="L-3695"><a href="#L-3695"><span class="linenos">3695</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
+</span><span id="L-3696"><a href="#L-3696"><span class="linenos">3696</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-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="k">class</span> <span class="nc">Log10</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3699"><a href="#L-3699"><span class="linenos">3699</span></a> <span class="k">pass</span>
-</span><span id="L-3700"><a href="#L-3700"><span class="linenos">3700</span></a>
+</span><span id="L-3698"><a href="#L-3698"><span class="linenos">3698</span></a>
+</span><span id="L-3699"><a href="#L-3699"><span class="linenos">3699</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
+</span><span id="L-3700"><a href="#L-3700"><span class="linenos">3700</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-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 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-3703"><a href="#L-3703"><span class="linenos">3703</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-3704"><a href="#L-3704"><span class="linenos">3704</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">JSONBExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
+</span><span id="L-3704"><a href="#L-3704"><span class="linenos">3704</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-3705"><a href="#L-3705"><span class="linenos">3705</span></a>
-</span><span id="L-3706"><a href="#L-3706"><span class="linenos">3706</span></a><span 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-3707"><a href="#L-3707"><span class="linenos">3707</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-3708"><a href="#L-3708"><span class="linenos">3708</span></a>
-</span><span id="L-3709"><a href="#L-3709"><span class="linenos">3709</span></a>
-</span><span id="L-3710"><a href="#L-3710"><span class="linenos">3710</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-3711"><a href="#L-3711"><span class="linenos">3711</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-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><span id="L-3714"><a href="#L-3714"><span class="linenos">3714</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-3715"><a href="#L-3715"><span class="linenos">3715</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-3706"><a href="#L-3706"><span class="linenos">3706</span></a>
+</span><span id="L-3707"><a href="#L-3707"><span class="linenos">3707</span></a><span class="k">class</span> <span class="nc">JSONFormat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3708"><a href="#L-3708"><span class="linenos">3708</span></a> <span class="n">arg_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-3709"><a href="#L-3709"><span class="linenos">3709</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-3710"><a href="#L-3710"><span class="linenos">3710</span></a>
+</span><span id="L-3711"><a href="#L-3711"><span class="linenos">3711</span></a>
+</span><span id="L-3712"><a href="#L-3712"><span class="linenos">3712</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-3713"><a href="#L-3713"><span class="linenos">3713</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-3714"><a href="#L-3714"><span class="linenos">3714</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3715"><a href="#L-3715"><span class="linenos">3715</span></a>
</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">VarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3719"><a href="#L-3719"><span class="linenos">3719</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3720"><a href="#L-3720"><span class="linenos">3720</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3721"><a href="#L-3721"><span class="linenos">3721</span></a>
-</span><span id="L-3722"><a href="#L-3722"><span class="linenos">3722</span></a>
-</span><span id="L-3723"><a href="#L-3723"><span class="linenos">3723</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html</span>
-</span><span id="L-3724"><a href="#L-3724"><span class="linenos">3724</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-3725"><a href="#L-3725"><span class="linenos">3725</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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="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-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 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-3730"><a href="#L-3730"><span class="linenos">3730</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3731"><a href="#L-3731"><span class="linenos">3731</span></a>
-</span><span id="L-3732"><a href="#L-3732"><span class="linenos">3732</span></a>
-</span><span id="L-3733"><a href="#L-3733"><span class="linenos">3733</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-3734"><a href="#L-3734"><span class="linenos">3734</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3736"><a href="#L-3736"><span class="linenos">3736</span></a>
+</span><span id="L-3717"><a href="#L-3717"><span class="linenos">3717</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-3718"><a href="#L-3718"><span class="linenos">3718</span></a> <span class="k">pass</span>
+</span><span id="L-3719"><a href="#L-3719"><span class="linenos">3719</span></a>
+</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="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-3722"><a href="#L-3722"><span class="linenos">3722</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3723"><a href="#L-3723"><span class="linenos">3723</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-3724"><a href="#L-3724"><span class="linenos">3724</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-3725"><a href="#L-3725"><span class="linenos">3725</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-3726"><a href="#L-3726"><span class="linenos">3726</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-3727"><a href="#L-3727"><span class="linenos">3727</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-3728"><a href="#L-3728"><span class="linenos">3728</span></a> <span class="p">}</span>
+</span><span id="L-3729"><a href="#L-3729"><span class="linenos">3729</span></a>
+</span><span id="L-3730"><a href="#L-3730"><span class="linenos">3730</span></a>
+</span><span id="L-3731"><a href="#L-3731"><span class="linenos">3731</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-3732"><a href="#L-3732"><span class="linenos">3732</span></a> <span class="k">pass</span>
+</span><span id="L-3733"><a href="#L-3733"><span class="linenos">3733</span></a>
+</span><span id="L-3734"><a href="#L-3734"><span class="linenos">3734</span></a>
+</span><span id="L-3735"><a href="#L-3735"><span class="linenos">3735</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-3736"><a href="#L-3736"><span class="linenos">3736</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3737"><a href="#L-3737"><span class="linenos">3737</span></a>
-</span><span id="L-3738"><a href="#L-3738"><span class="linenos">3738</span></a><span class="k">class</span> <span class="nc">Month</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3739"><a href="#L-3739"><span class="linenos">3739</span></a> <span class="k">pass</span>
-</span><span id="L-3740"><a href="#L-3740"><span class="linenos">3740</span></a>
+</span><span id="L-3738"><a href="#L-3738"><span class="linenos">3738</span></a>
+</span><span id="L-3739"><a href="#L-3739"><span class="linenos">3739</span></a><span class="k">class</span> <span class="nc">Log2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3740"><a href="#L-3740"><span class="linenos">3740</span></a> <span class="k">pass</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 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-3743"><a href="#L-3743"><span class="linenos">3743</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3744"><a href="#L-3744"><span class="linenos">3744</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="k">class</span> <span class="nc">Log10</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3744"><a href="#L-3744"><span class="linenos">3744</span></a> <span class="k">pass</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="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3747"><a href="#L-3747"><span class="linenos">3747</span></a> <span class="k">pass</span>
-</span><span id="L-3748"><a href="#L-3748"><span class="linenos">3748</span></a>
+</span><span id="L-3746"><a href="#L-3746"><span class="linenos">3746</span></a>
+</span><span id="L-3747"><a href="#L-3747"><span class="linenos">3747</span></a><span class="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-3748"><a href="#L-3748"><span class="linenos">3748</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-3749"><a href="#L-3749"><span class="linenos">3749</span></a>
-</span><span id="L-3750"><a href="#L-3750"><span class="linenos">3750</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-3751"><a href="#L-3751"><span class="linenos">3751</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-3752"><a href="#L-3752"><span class="linenos">3752</span></a>
+</span><span id="L-3750"><a href="#L-3750"><span class="linenos">3750</span></a>
+</span><span id="L-3751"><a href="#L-3751"><span class="linenos">3751</span></a><span 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-3752"><a href="#L-3752"><span class="linenos">3752</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-3753"><a href="#L-3753"><span class="linenos">3753</span></a>
-</span><span id="L-3754"><a href="#L-3754"><span class="linenos">3754</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-3755"><a href="#L-3755"><span class="linenos">3755</span></a> <span class="k">pass</span>
-</span><span id="L-3756"><a href="#L-3756"><span class="linenos">3756</span></a>
+</span><span id="L-3754"><a href="#L-3754"><span class="linenos">3754</span></a>
+</span><span id="L-3755"><a href="#L-3755"><span class="linenos">3755</span></a><span 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-3756"><a href="#L-3756"><span class="linenos">3756</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-3757"><a href="#L-3757"><span class="linenos">3757</span></a>
-</span><span id="L-3758"><a href="#L-3758"><span class="linenos">3758</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-3759"><a href="#L-3759"><span class="linenos">3759</span></a> <span class="k">pass</span>
-</span><span id="L-3760"><a href="#L-3760"><span class="linenos">3760</span></a>
+</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 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-3760"><a href="#L-3760"><span class="linenos">3760</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3761"><a href="#L-3761"><span class="linenos">3761</span></a>
-</span><span id="L-3762"><a href="#L-3762"><span class="linenos">3762</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-3763"><a href="#L-3763"><span class="linenos">3763</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3764"><a href="#L-3764"><span class="linenos">3764</span></a>
+</span><span id="L-3762"><a href="#L-3762"><span class="linenos">3762</span></a>
+</span><span id="L-3763"><a href="#L-3763"><span class="linenos">3763</span></a><span 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-3764"><a href="#L-3764"><span class="linenos">3764</span></a> <span class="k">pass</span>
</span><span id="L-3765"><a href="#L-3765"><span class="linenos">3765</span></a>
-</span><span id="L-3766"><a href="#L-3766"><span class="linenos">3766</span></a><span class="c1"># Clickhouse-specific:</span>
-</span><span id="L-3767"><a href="#L-3767"><span class="linenos">3767</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference/quantiles/#quantiles</span>
-</span><span id="L-3768"><a href="#L-3768"><span class="linenos">3768</span></a><span class="k">class</span> <span class="nc">Quantiles</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3769"><a href="#L-3769"><span class="linenos">3769</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-3770"><a href="#L-3770"><span class="linenos">3770</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3766"><a href="#L-3766"><span class="linenos">3766</span></a>
+</span><span id="L-3767"><a href="#L-3767"><span class="linenos">3767</span></a><span 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-3768"><a href="#L-3768"><span class="linenos">3768</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-3769"><a href="#L-3769"><span class="linenos">3769</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3770"><a href="#L-3770"><span class="linenos">3770</span></a>
</span><span id="L-3771"><a href="#L-3771"><span class="linenos">3771</span></a>
-</span><span id="L-3772"><a href="#L-3772"><span class="linenos">3772</span></a>
-</span><span id="L-3773"><a href="#L-3773"><span class="linenos">3773</span></a><span class="k">class</span> <span class="nc">QuantileIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-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 class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3772"><a href="#L-3772"><span class="linenos">3772</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html</span>
+</span><span id="L-3773"><a href="#L-3773"><span class="linenos">3773</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-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 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-3775"><a href="#L-3775"><span class="linenos">3775</span></a>
</span><span id="L-3776"><a href="#L-3776"><span class="linenos">3776</span></a>
-</span><span id="L-3777"><a href="#L-3777"><span class="linenos">3777</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-3778"><a href="#L-3778"><span class="linenos">3778</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3779"><a href="#L-3779"><span class="linenos">3779</span></a>
+</span><span id="L-3777"><a href="#L-3777"><span class="linenos">3777</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-3778"><a href="#L-3778"><span class="linenos">3778</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3779"><a href="#L-3779"><span class="linenos">3779</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</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="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-3782"><a href="#L-3782"><span class="linenos">3782</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3783"><a href="#L-3783"><span class="linenos">3783</span></a>
+</span><span id="L-3781"><a href="#L-3781"><span class="linenos">3781</span></a>
+</span><span id="L-3782"><a href="#L-3782"><span class="linenos">3782</span></a><span class="k">class</span> <span class="nc">MD5</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3783"><a href="#L-3783"><span class="linenos">3783</span></a> <span class="n">_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-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="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-3786"><a href="#L-3786"><span class="linenos">3786</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-3787"><a href="#L-3787"><span class="linenos">3787</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3788"><a href="#L-3788"><span class="linenos">3788</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3785"><a href="#L-3785"><span class="linenos">3785</span></a>
+</span><span id="L-3786"><a href="#L-3786"><span class="linenos">3786</span></a><span class="k">class</span> <span class="nc">Min</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3787"><a href="#L-3787"><span class="linenos">3787</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&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="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</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><span id="L-3791"><a href="#L-3791"><span class="linenos">3791</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-3792"><a href="#L-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;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-3791"><a href="#L-3791"><span class="linenos">3791</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-3792"><a href="#L-3792"><span class="linenos">3792</span></a> <span class="k">pass</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><span id="L-3795"><a href="#L-3795"><span class="linenos">3795</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-3796"><a href="#L-3796"><span class="linenos">3796</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3797"><a href="#L-3797"><span class="linenos">3797</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-3798"><a href="#L-3798"><span class="linenos">3798</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-3799"><a href="#L-3799"><span class="linenos">3799</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-3800"><a href="#L-3800"><span class="linenos">3800</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-3801"><a href="#L-3801"><span class="linenos">3801</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-3802"><a href="#L-3802"><span class="linenos">3802</span></a> <span class="p">}</span>
-</span><span id="L-3803"><a href="#L-3803"><span class="linenos">3803</span></a>
-</span><span id="L-3804"><a href="#L-3804"><span class="linenos">3804</span></a>
-</span><span id="L-3805"><a href="#L-3805"><span class="linenos">3805</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3806"><a href="#L-3806"><span class="linenos">3806</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3807"><a href="#L-3807"><span class="linenos">3807</span></a>
-</span><span id="L-3808"><a href="#L-3808"><span class="linenos">3808</span></a>
-</span><span id="L-3809"><a href="#L-3809"><span class="linenos">3809</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3810"><a href="#L-3810"><span class="linenos">3810</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3811"><a href="#L-3811"><span class="linenos">3811</span></a>
-</span><span id="L-3812"><a href="#L-3812"><span class="linenos">3812</span></a>
-</span><span id="L-3813"><a href="#L-3813"><span class="linenos">3813</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.split.html</span>
-</span><span id="L-3814"><a href="#L-3814"><span class="linenos">3814</span></a><span class="c1"># limit is the number of times a pattern is applied</span>
-</span><span id="L-3815"><a href="#L-3815"><span class="linenos">3815</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-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">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-3795"><a href="#L-3795"><span class="linenos">3795</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-3796"><a href="#L-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;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-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><span id="L-3799"><a href="#L-3799"><span class="linenos">3799</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-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">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-3804"><a href="#L-3804"><span class="linenos">3804</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-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><span id="L-3807"><a href="#L-3807"><span class="linenos">3807</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-3808"><a href="#L-3808"><span class="linenos">3808</span></a> <span class="k">pass</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><span id="L-3811"><a href="#L-3811"><span class="linenos">3811</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-3812"><a href="#L-3812"><span class="linenos">3812</span></a> <span class="k">pass</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><span id="L-3815"><a href="#L-3815"><span class="linenos">3815</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-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;quantile&quot;</span><span class="p">:</span> <span class="kc">True</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><span id="L-3819"><a href="#L-3819"><span class="linenos">3819</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-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;times&quot;</span><span class="p">:</span> <span class="kc">True</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">Round</span><span class="p">(</span><span class="n">Func</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">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-3819"><a href="#L-3819"><span class="linenos">3819</span></a><span class="c1"># Clickhouse-specific:</span>
+</span><span id="L-3820"><a href="#L-3820"><span class="linenos">3820</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference/quantiles/#quantiles</span>
+</span><span id="L-3821"><a href="#L-3821"><span class="linenos">3821</span></a><span class="k">class</span> <span class="nc">Quantiles</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3822"><a href="#L-3822"><span class="linenos">3822</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3823"><a href="#L-3823"><span class="linenos">3823</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3824"><a href="#L-3824"><span class="linenos">3824</span></a>
</span><span id="L-3825"><a href="#L-3825"><span class="linenos">3825</span></a>
-</span><span id="L-3826"><a href="#L-3826"><span class="linenos">3826</span></a>
-</span><span id="L-3827"><a href="#L-3827"><span class="linenos">3827</span></a><span class="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-3828"><a href="#L-3828"><span class="linenos">3828</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-3826"><a href="#L-3826"><span class="linenos">3826</span></a><span class="k">class</span> <span class="nc">QuantileIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-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 class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3828"><a href="#L-3828"><span class="linenos">3828</span></a>
</span><span id="L-3829"><a href="#L-3829"><span class="linenos">3829</span></a>
-</span><span id="L-3830"><a href="#L-3830"><span class="linenos">3830</span></a>
-</span><span id="L-3831"><a href="#L-3831"><span class="linenos">3831</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-3832"><a href="#L-3832"><span class="linenos">3832</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3830"><a href="#L-3830"><span class="linenos">3830</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-3831"><a href="#L-3831"><span class="linenos">3831</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3832"><a href="#L-3832"><span class="linenos">3832</span></a>
</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><span id="L-3835"><a href="#L-3835"><span class="linenos">3835</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3836"><a href="#L-3836"><span class="linenos">3836</span></a> <span class="k">pass</span>
+</span><span id="L-3834"><a href="#L-3834"><span class="linenos">3834</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-3835"><a href="#L-3835"><span class="linenos">3835</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3836"><a href="#L-3836"><span class="linenos">3836</span></a>
</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">SortArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3840"><a href="#L-3840"><span class="linenos">3840</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3841"><a href="#L-3841"><span class="linenos">3841</span></a>
+</span><span id="L-3838"><a href="#L-3838"><span class="linenos">3838</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-3839"><a href="#L-3839"><span class="linenos">3839</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-3840"><a href="#L-3840"><span class="linenos">3840</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3841"><a href="#L-3841"><span class="linenos">3841</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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">Split</span><span class="p">(</span><span class="n">Func</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">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-3845"><a href="#L-3845"><span class="linenos">3845</span></a>
+</span><span id="L-3843"><a href="#L-3843"><span class="linenos">3843</span></a>
+</span><span id="L-3844"><a href="#L-3844"><span class="linenos">3844</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-3845"><a href="#L-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;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-3846"><a href="#L-3846"><span class="linenos">3846</span></a>
-</span><span id="L-3847"><a href="#L-3847"><span class="linenos">3847</span></a><span class="c1"># Start may be omitted in the case of postgres</span>
-</span><span id="L-3848"><a href="#L-3848"><span class="linenos">3848</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span>
-</span><span id="L-3849"><a href="#L-3849"><span class="linenos">3849</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-3850"><a href="#L-3850"><span class="linenos">3850</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3851"><a href="#L-3851"><span class="linenos">3851</span></a>
-</span><span id="L-3852"><a href="#L-3852"><span class="linenos">3852</span></a>
-</span><span id="L-3853"><a href="#L-3853"><span class="linenos">3853</span></a><span class="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-3854"><a href="#L-3854"><span class="linenos">3854</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3855"><a href="#L-3855"><span class="linenos">3855</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-3856"><a href="#L-3856"><span class="linenos">3856</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-3857"><a href="#L-3857"><span class="linenos">3857</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-3858"><a href="#L-3858"><span class="linenos">3858</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-3859"><a href="#L-3859"><span class="linenos">3859</span></a> <span class="p">}</span>
+</span><span id="L-3847"><a href="#L-3847"><span class="linenos">3847</span></a>
+</span><span id="L-3848"><a href="#L-3848"><span class="linenos">3848</span></a><span class="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-3849"><a href="#L-3849"><span class="linenos">3849</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3850"><a href="#L-3850"><span class="linenos">3850</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-3851"><a href="#L-3851"><span class="linenos">3851</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-3852"><a href="#L-3852"><span class="linenos">3852</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-3853"><a href="#L-3853"><span class="linenos">3853</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-3854"><a href="#L-3854"><span class="linenos">3854</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-3855"><a href="#L-3855"><span class="linenos">3855</span></a> <span class="p">}</span>
+</span><span id="L-3856"><a href="#L-3856"><span class="linenos">3856</span></a>
+</span><span id="L-3857"><a href="#L-3857"><span class="linenos">3857</span></a>
+</span><span id="L-3858"><a href="#L-3858"><span class="linenos">3858</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3859"><a href="#L-3859"><span class="linenos">3859</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-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><span id="L-3862"><a href="#L-3862"><span class="linenos">3862</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-3863"><a href="#L-3863"><span class="linenos">3863</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3862"><a href="#L-3862"><span class="linenos">3862</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3863"><a href="#L-3863"><span class="linenos">3863</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3864"><a href="#L-3864"><span class="linenos">3864</span></a>
</span><span id="L-3865"><a href="#L-3865"><span class="linenos">3865</span></a>
-</span><span id="L-3866"><a href="#L-3866"><span class="linenos">3866</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-3867"><a href="#L-3867"><span class="linenos">3867</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3868"><a href="#L-3868"><span class="linenos">3868</span></a>
-</span><span id="L-3869"><a href="#L-3869"><span class="linenos">3869</span></a>
-</span><span id="L-3870"><a href="#L-3870"><span class="linenos">3870</span></a><span class="c1"># Spark allows unix_timestamp()</span>
-</span><span id="L-3871"><a href="#L-3871"><span class="linenos">3871</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-3872"><a href="#L-3872"><span class="linenos">3872</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-3873"><a href="#L-3873"><span class="linenos">3873</span></a> <span class="n">arg_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-3866"><a href="#L-3866"><span class="linenos">3866</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-3867"><a href="#L-3867"><span class="linenos">3867</span></a><span class="c1"># limit is the number of times a pattern is applied</span>
+</span><span id="L-3868"><a href="#L-3868"><span class="linenos">3868</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-3869"><a href="#L-3869"><span class="linenos">3869</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3870"><a href="#L-3870"><span class="linenos">3870</span></a>
+</span><span id="L-3871"><a href="#L-3871"><span class="linenos">3871</span></a>
+</span><span id="L-3872"><a href="#L-3872"><span class="linenos">3872</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-3873"><a href="#L-3873"><span class="linenos">3873</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3874"><a href="#L-3874"><span class="linenos">3874</span></a>
</span><span id="L-3875"><a href="#L-3875"><span class="linenos">3875</span></a>
-</span><span id="L-3876"><a href="#L-3876"><span class="linenos">3876</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-3877"><a href="#L-3877"><span class="linenos">3877</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3876"><a href="#L-3876"><span class="linenos">3876</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-3877"><a href="#L-3877"><span class="linenos">3877</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3878"><a href="#L-3878"><span class="linenos">3878</span></a>
</span><span id="L-3879"><a href="#L-3879"><span class="linenos">3879</span></a>
-</span><span id="L-3880"><a href="#L-3880"><span class="linenos">3880</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-3881"><a href="#L-3881"><span class="linenos">3881</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-3882"><a href="#L-3882"><span class="linenos">3882</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3880"><a href="#L-3880"><span class="linenos">3880</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-3881"><a href="#L-3881"><span class="linenos">3881</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-3882"><a href="#L-3882"><span class="linenos">3882</span></a>
</span><span id="L-3883"><a href="#L-3883"><span class="linenos">3883</span></a>
-</span><span id="L-3884"><a href="#L-3884"><span class="linenos">3884</span></a>
-</span><span id="L-3885"><a href="#L-3885"><span class="linenos">3885</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-3886"><a href="#L-3886"><span class="linenos">3886</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3884"><a href="#L-3884"><span class="linenos">3884</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-3885"><a href="#L-3885"><span class="linenos">3885</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3886"><a href="#L-3886"><span class="linenos">3886</span></a>
</span><span id="L-3887"><a href="#L-3887"><span class="linenos">3887</span></a>
-</span><span id="L-3888"><a href="#L-3888"><span class="linenos">3888</span></a>
-</span><span id="L-3889"><a href="#L-3889"><span class="linenos">3889</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-3890"><a href="#L-3890"><span class="linenos">3890</span></a> <span class="k">pass</span>
+</span><span id="L-3888"><a href="#L-3888"><span class="linenos">3888</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3889"><a href="#L-3889"><span class="linenos">3889</span></a> <span class="k">pass</span>
+</span><span id="L-3890"><a href="#L-3890"><span class="linenos">3890</span></a>
</span><span id="L-3891"><a href="#L-3891"><span class="linenos">3891</span></a>
-</span><span id="L-3892"><a href="#L-3892"><span class="linenos">3892</span></a>
-</span><span id="L-3893"><a href="#L-3893"><span class="linenos">3893</span></a><span class="k">class</span> <span class="nc">Sqrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3894"><a href="#L-3894"><span class="linenos">3894</span></a> <span class="k">pass</span>
+</span><span id="L-3892"><a href="#L-3892"><span class="linenos">3892</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-3893"><a href="#L-3893"><span class="linenos">3893</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-3894"><a href="#L-3894"><span class="linenos">3894</span></a>
</span><span id="L-3895"><a href="#L-3895"><span class="linenos">3895</span></a>
-</span><span id="L-3896"><a href="#L-3896"><span class="linenos">3896</span></a>
-</span><span id="L-3897"><a href="#L-3897"><span class="linenos">3897</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-3898"><a href="#L-3898"><span class="linenos">3898</span></a> <span class="k">pass</span>
+</span><span id="L-3896"><a href="#L-3896"><span class="linenos">3896</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-3897"><a href="#L-3897"><span class="linenos">3897</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-3898"><a href="#L-3898"><span class="linenos">3898</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3899"><a href="#L-3899"><span class="linenos">3899</span></a>
</span><span id="L-3900"><a href="#L-3900"><span class="linenos">3900</span></a>
-</span><span id="L-3901"><a href="#L-3901"><span class="linenos">3901</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-3902"><a href="#L-3902"><span class="linenos">3902</span></a> <span class="k">pass</span>
+</span><span id="L-3901"><a href="#L-3901"><span class="linenos">3901</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-3902"><a href="#L-3902"><span class="linenos">3902</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3903"><a href="#L-3903"><span class="linenos">3903</span></a>
</span><span id="L-3904"><a href="#L-3904"><span class="linenos">3904</span></a>
-</span><span id="L-3905"><a href="#L-3905"><span class="linenos">3905</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-3906"><a href="#L-3906"><span class="linenos">3906</span></a> <span class="k">pass</span>
+</span><span id="L-3905"><a href="#L-3905"><span class="linenos">3905</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-3906"><a href="#L-3906"><span class="linenos">3906</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3907"><a href="#L-3907"><span class="linenos">3907</span></a>
</span><span id="L-3908"><a href="#L-3908"><span class="linenos">3908</span></a>
-</span><span id="L-3909"><a href="#L-3909"><span class="linenos">3909</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-3910"><a href="#L-3910"><span class="linenos">3910</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3911"><a href="#L-3911"><span class="linenos">3911</span></a>
-</span><span id="L-3912"><a href="#L-3912"><span class="linenos">3912</span></a>
-</span><span id="L-3913"><a href="#L-3913"><span class="linenos">3913</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-3914"><a href="#L-3914"><span class="linenos">3914</span></a> <span class="k">pass</span>
-</span><span id="L-3915"><a href="#L-3915"><span class="linenos">3915</span></a>
-</span><span id="L-3916"><a href="#L-3916"><span class="linenos">3916</span></a>
-</span><span id="L-3917"><a href="#L-3917"><span class="linenos">3917</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-3918"><a href="#L-3918"><span class="linenos">3918</span></a> <span class="k">pass</span>
-</span><span id="L-3919"><a href="#L-3919"><span class="linenos">3919</span></a>
-</span><span id="L-3920"><a href="#L-3920"><span class="linenos">3920</span></a>
-</span><span id="L-3921"><a href="#L-3921"><span class="linenos">3921</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-3922"><a href="#L-3922"><span class="linenos">3922</span></a> <span class="k">pass</span>
+</span><span id="L-3909"><a href="#L-3909"><span class="linenos">3909</span></a><span class="c1"># Start may be omitted in the case of postgres</span>
+</span><span id="L-3910"><a href="#L-3910"><span class="linenos">3910</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span>
+</span><span id="L-3911"><a href="#L-3911"><span class="linenos">3911</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-3912"><a href="#L-3912"><span class="linenos">3912</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3913"><a href="#L-3913"><span class="linenos">3913</span></a>
+</span><span id="L-3914"><a href="#L-3914"><span class="linenos">3914</span></a>
+</span><span id="L-3915"><a href="#L-3915"><span class="linenos">3915</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-3916"><a href="#L-3916"><span class="linenos">3916</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3917"><a href="#L-3917"><span class="linenos">3917</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-3918"><a href="#L-3918"><span class="linenos">3918</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-3919"><a href="#L-3919"><span class="linenos">3919</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-3920"><a href="#L-3920"><span class="linenos">3920</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-3921"><a href="#L-3921"><span class="linenos">3921</span></a> <span class="p">}</span>
+</span><span id="L-3922"><a href="#L-3922"><span class="linenos">3922</span></a>
</span><span id="L-3923"><a href="#L-3923"><span class="linenos">3923</span></a>
-</span><span id="L-3924"><a href="#L-3924"><span class="linenos">3924</span></a>
-</span><span id="L-3925"><a href="#L-3925"><span class="linenos">3925</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-3926"><a href="#L-3926"><span class="linenos">3926</span></a> <span class="k">pass</span>
+</span><span id="L-3924"><a href="#L-3924"><span class="linenos">3924</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-3925"><a href="#L-3925"><span class="linenos">3925</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3926"><a href="#L-3926"><span class="linenos">3926</span></a>
</span><span id="L-3927"><a href="#L-3927"><span class="linenos">3927</span></a>
-</span><span id="L-3928"><a href="#L-3928"><span class="linenos">3928</span></a>
-</span><span id="L-3929"><a href="#L-3929"><span class="linenos">3929</span></a><span 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-3930"><a href="#L-3930"><span class="linenos">3930</span></a> <span class="k">pass</span>
+</span><span id="L-3928"><a href="#L-3928"><span class="linenos">3928</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-3929"><a href="#L-3929"><span class="linenos">3929</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3930"><a href="#L-3930"><span class="linenos">3930</span></a>
</span><span id="L-3931"><a href="#L-3931"><span class="linenos">3931</span></a>
-</span><span id="L-3932"><a href="#L-3932"><span class="linenos">3932</span></a>
-</span><span id="L-3933"><a href="#L-3933"><span class="linenos">3933</span></a><span class="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-3934"><a href="#L-3934"><span class="linenos">3934</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3935"><a href="#L-3935"><span class="linenos">3935</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-3936"><a href="#L-3936"><span class="linenos">3936</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-3937"><a href="#L-3937"><span class="linenos">3937</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-3938"><a href="#L-3938"><span class="linenos">3938</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-3939"><a href="#L-3939"><span class="linenos">3939</span></a> <span class="p">}</span>
+</span><span id="L-3932"><a href="#L-3932"><span class="linenos">3932</span></a><span class="c1"># Spark allows unix_timestamp()</span>
+</span><span id="L-3933"><a href="#L-3933"><span class="linenos">3933</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-3934"><a href="#L-3934"><span class="linenos">3934</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-3935"><a href="#L-3935"><span class="linenos">3935</span></a> <span class="n">arg_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-3936"><a href="#L-3936"><span class="linenos">3936</span></a>
+</span><span id="L-3937"><a href="#L-3937"><span class="linenos">3937</span></a>
+</span><span id="L-3938"><a href="#L-3938"><span class="linenos">3938</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-3939"><a href="#L-3939"><span class="linenos">3939</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3940"><a href="#L-3940"><span class="linenos">3940</span></a>
</span><span id="L-3941"><a href="#L-3941"><span class="linenos">3941</span></a>
-</span><span id="L-3942"><a href="#L-3942"><span class="linenos">3942</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-3943"><a href="#L-3943"><span class="linenos">3943</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3944"><a href="#L-3944"><span class="linenos">3944</span></a>
+</span><span id="L-3942"><a href="#L-3942"><span class="linenos">3942</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-3943"><a href="#L-3943"><span class="linenos">3943</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-3944"><a href="#L-3944"><span class="linenos">3944</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</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="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-3947"><a href="#L-3947"><span class="linenos">3947</span></a> <span class="k">pass</span>
-</span><span id="L-3948"><a href="#L-3948"><span class="linenos">3948</span></a>
+</span><span id="L-3946"><a href="#L-3946"><span class="linenos">3946</span></a>
+</span><span id="L-3947"><a href="#L-3947"><span class="linenos">3947</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-3948"><a href="#L-3948"><span class="linenos">3948</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3949"><a href="#L-3949"><span class="linenos">3949</span></a>
-</span><span id="L-3950"><a href="#L-3950"><span class="linenos">3950</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-3951"><a href="#L-3951"><span class="linenos">3951</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3952"><a href="#L-3952"><span class="linenos">3952</span></a>
+</span><span id="L-3950"><a href="#L-3950"><span class="linenos">3950</span></a>
+</span><span id="L-3951"><a href="#L-3951"><span class="linenos">3951</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-3952"><a href="#L-3952"><span class="linenos">3952</span></a> <span class="k">pass</span>
</span><span id="L-3953"><a href="#L-3953"><span class="linenos">3953</span></a>
-</span><span id="L-3954"><a href="#L-3954"><span class="linenos">3954</span></a><span class="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-3955"><a href="#L-3955"><span class="linenos">3955</span></a> <span class="k">pass</span>
-</span><span id="L-3956"><a href="#L-3956"><span class="linenos">3956</span></a>
+</span><span id="L-3954"><a href="#L-3954"><span class="linenos">3954</span></a>
+</span><span id="L-3955"><a href="#L-3955"><span class="linenos">3955</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-3956"><a href="#L-3956"><span class="linenos">3956</span></a> <span class="k">pass</span>
</span><span id="L-3957"><a href="#L-3957"><span class="linenos">3957</span></a>
-</span><span id="L-3958"><a href="#L-3958"><span class="linenos">3958</span></a><span class="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-3959"><a href="#L-3959"><span class="linenos">3959</span></a> <span class="k">pass</span>
-</span><span id="L-3960"><a href="#L-3960"><span class="linenos">3960</span></a>
+</span><span id="L-3958"><a href="#L-3958"><span class="linenos">3958</span></a>
+</span><span id="L-3959"><a href="#L-3959"><span class="linenos">3959</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-3960"><a href="#L-3960"><span class="linenos">3960</span></a> <span class="k">pass</span>
</span><span id="L-3961"><a href="#L-3961"><span class="linenos">3961</span></a>
-</span><span id="L-3962"><a href="#L-3962"><span class="linenos">3962</span></a><span class="k">class</span> <span class="nc">UnixToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3963"><a href="#L-3963"><span class="linenos">3963</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3964"><a href="#L-3964"><span class="linenos">3964</span></a>
+</span><span id="L-3962"><a href="#L-3962"><span class="linenos">3962</span></a>
+</span><span id="L-3963"><a href="#L-3963"><span class="linenos">3963</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-3964"><a href="#L-3964"><span class="linenos">3964</span></a> <span class="k">pass</span>
</span><span id="L-3965"><a href="#L-3965"><span class="linenos">3965</span></a>
-</span><span id="L-3966"><a href="#L-3966"><span class="linenos">3966</span></a><span class="c1"># https://prestodb.io/docs/current/functions/datetime.html</span>
-</span><span id="L-3967"><a href="#L-3967"><span class="linenos">3967</span></a><span class="c1"># presto has weird zone/hours/minutes</span>
-</span><span id="L-3968"><a href="#L-3968"><span class="linenos">3968</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-3969"><a href="#L-3969"><span class="linenos">3969</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;hours&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;minutes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-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="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-3968"><a href="#L-3968"><span class="linenos">3968</span></a> <span class="k">pass</span>
+</span><span id="L-3969"><a href="#L-3969"><span class="linenos">3969</span></a>
</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">SECONDS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;seconds&quot;</span><span class="p">)</span>
-</span><span id="L-3972"><a href="#L-3972"><span class="linenos">3972</span></a> <span class="n">MILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;millis&quot;</span><span class="p">)</span>
-</span><span id="L-3973"><a href="#L-3973"><span class="linenos">3973</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;micros&quot;</span><span class="p">)</span>
+</span><span id="L-3971"><a href="#L-3971"><span class="linenos">3971</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-3972"><a href="#L-3972"><span class="linenos">3972</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3973"><a href="#L-3973"><span class="linenos">3973</span></a>
</span><span id="L-3974"><a href="#L-3974"><span class="linenos">3974</span></a>
-</span><span id="L-3975"><a href="#L-3975"><span class="linenos">3975</span></a>
-</span><span id="L-3976"><a href="#L-3976"><span class="linenos">3976</span></a><span class="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-3977"><a href="#L-3977"><span class="linenos">3977</span></a> <span class="k">pass</span>
+</span><span id="L-3975"><a href="#L-3975"><span class="linenos">3975</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-3976"><a href="#L-3976"><span class="linenos">3976</span></a> <span class="k">pass</span>
+</span><span id="L-3977"><a href="#L-3977"><span class="linenos">3977</span></a>
</span><span id="L-3978"><a href="#L-3978"><span class="linenos">3978</span></a>
-</span><span id="L-3979"><a href="#L-3979"><span class="linenos">3979</span></a>
-</span><span id="L-3980"><a href="#L-3980"><span class="linenos">3980</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-3981"><a href="#L-3981"><span class="linenos">3981</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-3979"><a href="#L-3979"><span class="linenos">3979</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-3980"><a href="#L-3980"><span class="linenos">3980</span></a> <span class="k">pass</span>
+</span><span id="L-3981"><a href="#L-3981"><span class="linenos">3981</span></a>
</span><span id="L-3982"><a href="#L-3982"><span class="linenos">3982</span></a>
-</span><span id="L-3983"><a href="#L-3983"><span class="linenos">3983</span></a>
-</span><span id="L-3984"><a href="#L-3984"><span class="linenos">3984</span></a><span class="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-3985"><a href="#L-3985"><span class="linenos">3985</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-3983"><a href="#L-3983"><span class="linenos">3983</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-3984"><a href="#L-3984"><span class="linenos">3984</span></a> <span class="k">pass</span>
+</span><span id="L-3985"><a href="#L-3985"><span class="linenos">3985</span></a>
</span><span id="L-3986"><a href="#L-3986"><span class="linenos">3986</span></a>
-</span><span id="L-3987"><a href="#L-3987"><span class="linenos">3987</span></a>
-</span><span id="L-3988"><a href="#L-3988"><span class="linenos">3988</span></a><span class="k">class</span> <span class="nc">VariancePop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3989"><a href="#L-3989"><span class="linenos">3989</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-3987"><a href="#L-3987"><span class="linenos">3987</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-3988"><a href="#L-3988"><span class="linenos">3988</span></a> <span class="k">pass</span>
+</span><span id="L-3989"><a href="#L-3989"><span class="linenos">3989</span></a>
</span><span id="L-3990"><a href="#L-3990"><span class="linenos">3990</span></a>
-</span><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="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-3993"><a href="#L-3993"><span class="linenos">3993</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3991"><a href="#L-3991"><span class="linenos">3991</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-3992"><a href="#L-3992"><span class="linenos">3992</span></a> <span class="k">pass</span>
+</span><span id="L-3993"><a href="#L-3993"><span class="linenos">3993</span></a>
</span><span id="L-3994"><a href="#L-3994"><span class="linenos">3994</span></a>
-</span><span id="L-3995"><a href="#L-3995"><span class="linenos">3995</span></a>
-</span><span id="L-3996"><a href="#L-3996"><span class="linenos">3996</span></a><span class="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-3997"><a href="#L-3997"><span class="linenos">3997</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3998"><a href="#L-3998"><span class="linenos">3998</span></a>
-</span><span id="L-3999"><a href="#L-3999"><span class="linenos">3999</span></a>
-</span><span id="L-4000"><a href="#L-4000"><span class="linenos">4000</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-4001"><a href="#L-4001"><span class="linenos">4001</span></a> <span class="k">pass</span>
+</span><span id="L-3995"><a href="#L-3995"><span class="linenos">3995</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-3996"><a href="#L-3996"><span class="linenos">3996</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3997"><a href="#L-3997"><span class="linenos">3997</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-3998"><a href="#L-3998"><span class="linenos">3998</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-3999"><a href="#L-3999"><span class="linenos">3999</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-4000"><a href="#L-4000"><span class="linenos">4000</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-4001"><a href="#L-4001"><span class="linenos">4001</span></a> <span class="p">}</span>
</span><span id="L-4002"><a href="#L-4002"><span class="linenos">4002</span></a>
</span><span id="L-4003"><a href="#L-4003"><span class="linenos">4003</span></a>
-</span><span id="L-4004"><a href="#L-4004"><span class="linenos">4004</span></a><span class="k">class</span> <span class="nc">Use</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-4005"><a href="#L-4005"><span class="linenos">4005</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4004"><a href="#L-4004"><span class="linenos">4004</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-4005"><a href="#L-4005"><span class="linenos">4005</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-4006"><a href="#L-4006"><span class="linenos">4006</span></a>
</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="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-4009"><a href="#L-4009"><span class="linenos">4009</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4008"><a href="#L-4008"><span class="linenos">4008</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-4009"><a href="#L-4009"><span class="linenos">4009</span></a> <span class="k">pass</span>
</span><span id="L-4010"><a href="#L-4010"><span class="linenos">4010</span></a>
</span><span id="L-4011"><a href="#L-4011"><span class="linenos">4011</span></a>
-</span><span id="L-4012"><a href="#L-4012"><span class="linenos">4012</span></a><span class="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-4013"><a href="#L-4013"><span class="linenos">4013</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-4012"><a href="#L-4012"><span class="linenos">4012</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-4013"><a href="#L-4013"><span class="linenos">4013</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4014"><a href="#L-4014"><span class="linenos">4014</span></a>
</span><span id="L-4015"><a href="#L-4015"><span class="linenos">4015</span></a>
-</span><span id="L-4016"><a href="#L-4016"><span class="linenos">4016</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-4017"><a href="#L-4017"><span class="linenos">4017</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-4016"><a href="#L-4016"><span class="linenos">4016</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-4017"><a href="#L-4017"><span class="linenos">4017</span></a> <span class="k">pass</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><span id="L-4020"><a href="#L-4020"><span class="linenos">4020</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-4021"><a href="#L-4021"><span class="linenos">4021</span></a>
+</span><span id="L-4020"><a href="#L-4020"><span class="linenos">4020</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-4021"><a href="#L-4021"><span class="linenos">4021</span></a> <span class="k">pass</span>
</span><span id="L-4022"><a href="#L-4022"><span class="linenos">4022</span></a>
-</span><span id="L-4023"><a href="#L-4023"><span class="linenos">4023</span></a><span class="c1"># Helpers</span>
-</span><span id="L-4024"><a href="#L-4024"><span class="linenos">4024</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="L-4025"><a href="#L-4025"><span class="linenos">4025</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-4026"><a href="#L-4026"><span class="linenos">4026</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-4027"><a href="#L-4027"><span class="linenos">4027</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-4028"><a href="#L-4028"><span class="linenos">4028</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-4029"><a href="#L-4029"><span class="linenos">4029</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-4030"><a href="#L-4030"><span class="linenos">4030</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-4031"><a href="#L-4031"><span class="linenos">4031</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4032"><a href="#L-4032"><span class="linenos">4032</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-4033"><a href="#L-4033"><span class="linenos">4033</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
-</span><span id="L-4034"><a href="#L-4034"><span class="linenos">4034</span></a>
-</span><span id="L-4035"><a href="#L-4035"><span class="linenos">4035</span></a><span class="sd"> Example:</span>
-</span><span id="L-4036"><a href="#L-4036"><span class="linenos">4036</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
-</span><span id="L-4037"><a href="#L-4037"><span class="linenos">4037</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
-</span><span id="L-4038"><a href="#L-4038"><span class="linenos">4038</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
-</span><span id="L-4039"><a href="#L-4039"><span class="linenos">4039</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
+</span><span id="L-4023"><a href="#L-4023"><span class="linenos">4023</span></a>
+</span><span id="L-4024"><a href="#L-4024"><span class="linenos">4024</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-4025"><a href="#L-4025"><span class="linenos">4025</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4026"><a href="#L-4026"><span class="linenos">4026</span></a>
+</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="c1"># https://prestodb.io/docs/current/functions/datetime.html</span>
+</span><span id="L-4029"><a href="#L-4029"><span class="linenos">4029</span></a><span class="c1"># presto has weird zone/hours/minutes</span>
+</span><span id="L-4030"><a href="#L-4030"><span class="linenos">4030</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-4031"><a href="#L-4031"><span class="linenos">4031</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;hours&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;minutes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-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="n">SECONDS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;seconds&quot;</span><span class="p">)</span>
+</span><span id="L-4034"><a href="#L-4034"><span class="linenos">4034</span></a> <span class="n">MILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;millis&quot;</span><span class="p">)</span>
+</span><span id="L-4035"><a href="#L-4035"><span class="linenos">4035</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;micros&quot;</span><span class="p">)</span>
+</span><span id="L-4036"><a href="#L-4036"><span class="linenos">4036</span></a>
+</span><span id="L-4037"><a href="#L-4037"><span class="linenos">4037</span></a>
+</span><span id="L-4038"><a href="#L-4038"><span class="linenos">4038</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-4039"><a href="#L-4039"><span class="linenos">4039</span></a> <span class="k">pass</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"> Args:</span>
-</span><span id="L-4042"><a href="#L-4042"><span class="linenos">4042</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
-</span><span id="L-4043"><a href="#L-4043"><span class="linenos">4043</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
-</span><span id="L-4044"><a href="#L-4044"><span class="linenos">4044</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="L-4045"><a href="#L-4045"><span class="linenos">4045</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-4046"><a href="#L-4046"><span class="linenos">4046</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
-</span><span id="L-4047"><a href="#L-4047"><span class="linenos">4047</span></a><span class="sd"> (automatically includes a space)</span>
-</span><span id="L-4048"><a href="#L-4048"><span class="linenos">4048</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="L-4049"><a href="#L-4049"><span class="linenos">4049</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-4050"><a href="#L-4050"><span class="linenos">4050</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="L-4051"><a href="#L-4051"><span class="linenos">4051</span></a>
-</span><span id="L-4052"><a href="#L-4052"><span class="linenos">4052</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4053"><a href="#L-4053"><span class="linenos">4053</span></a><span class="sd"> Expression: the parsed or given expression.</span>
-</span><span id="L-4054"><a href="#L-4054"><span class="linenos">4054</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4055"><a href="#L-4055"><span class="linenos">4055</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-4056"><a href="#L-4056"><span class="linenos">4056</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
-</span><span id="L-4057"><a href="#L-4057"><span class="linenos">4057</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-4058"><a href="#L-4058"><span class="linenos">4058</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
-</span><span id="L-4059"><a href="#L-4059"><span class="linenos">4059</span></a>
-</span><span id="L-4060"><a href="#L-4060"><span class="linenos">4060</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
+</span><span id="L-4041"><a href="#L-4041"><span class="linenos">4041</span></a>
+</span><span id="L-4042"><a href="#L-4042"><span class="linenos">4042</span></a><span 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-4043"><a href="#L-4043"><span class="linenos">4043</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-4044"><a href="#L-4044"><span class="linenos">4044</span></a>
+</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">class</span> <span class="nc">Variance</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4047"><a href="#L-4047"><span class="linenos">4047</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-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><span id="L-4050"><a href="#L-4050"><span class="linenos">4050</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-4051"><a href="#L-4051"><span class="linenos">4051</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-4052"><a href="#L-4052"><span class="linenos">4052</span></a>
+</span><span id="L-4053"><a href="#L-4053"><span class="linenos">4053</span></a>
+</span><span id="L-4054"><a href="#L-4054"><span class="linenos">4054</span></a><span class="k">class</span> <span class="nc">Week</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4055"><a href="#L-4055"><span class="linenos">4055</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4056"><a href="#L-4056"><span class="linenos">4056</span></a>
+</span><span id="L-4057"><a href="#L-4057"><span class="linenos">4057</span></a>
+</span><span id="L-4058"><a href="#L-4058"><span class="linenos">4058</span></a><span class="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-4059"><a href="#L-4059"><span class="linenos">4059</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-4062"><a href="#L-4062"><span class="linenos">4062</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-4063"><a href="#L-4063"><span class="linenos">4063</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
-</span><span id="L-4064"><a href="#L-4064"><span class="linenos">4064</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-4065"><a href="#L-4065"><span class="linenos">4065</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-4066"><a href="#L-4066"><span class="linenos">4066</span></a>
-</span><span id="L-4067"><a href="#L-4067"><span class="linenos">4067</span></a>
-</span><span id="L-4068"><a href="#L-4068"><span class="linenos">4068</span></a><span class="k">def</span> <span class="nf">_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-4069"><a href="#L-4069"><span class="linenos">4069</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="n">instance</span>
-</span><span id="L-4070"><a href="#L-4070"><span class="linenos">4070</span></a>
-</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="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-4073"><a href="#L-4073"><span class="linenos">4073</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-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><span id="L-4076"><a href="#L-4076"><span class="linenos">4076</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span>
-</span><span id="L-4077"><a href="#L-4077"><span class="linenos">4077</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-4078"><a href="#L-4078"><span class="linenos">4078</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-4079"><a href="#L-4079"><span class="linenos">4079</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-4080"><a href="#L-4080"><span class="linenos">4080</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4081"><a href="#L-4081"><span class="linenos">4081</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4082"><a href="#L-4082"><span class="linenos">4082</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4083"><a href="#L-4083"><span class="linenos">4083</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4084"><a href="#L-4084"><span class="linenos">4084</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</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="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-4087"><a href="#L-4087"><span class="linenos">4087</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="L-4088"><a href="#L-4088"><span class="linenos">4088</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-4089"><a href="#L-4089"><span class="linenos">4089</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-4090"><a href="#L-4090"><span class="linenos">4090</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-4091"><a href="#L-4091"><span class="linenos">4091</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-4092"><a href="#L-4092"><span class="linenos">4092</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-4093"><a href="#L-4093"><span class="linenos">4093</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-4094"><a href="#L-4094"><span class="linenos">4094</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4095"><a href="#L-4095"><span class="linenos">4095</span></a> <span class="p">)</span>
-</span><span id="L-4096"><a href="#L-4096"><span class="linenos">4096</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-4097"><a href="#L-4097"><span class="linenos">4097</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-4062"><a href="#L-4062"><span class="linenos">4062</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-4063"><a href="#L-4063"><span class="linenos">4063</span></a> <span class="k">pass</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><span id="L-4066"><a href="#L-4066"><span class="linenos">4066</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-4067"><a href="#L-4067"><span class="linenos">4067</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-4070"><a href="#L-4070"><span class="linenos">4070</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-4071"><a href="#L-4071"><span class="linenos">4071</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4072"><a href="#L-4072"><span class="linenos">4072</span></a>
+</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">class</span> <span class="nc">When</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4075"><a href="#L-4075"><span class="linenos">4075</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-4076"><a href="#L-4076"><span class="linenos">4076</span></a>
+</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">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-4079"><a href="#L-4079"><span class="linenos">4079</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-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><span id="L-4082"><a href="#L-4082"><span class="linenos">4082</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-4083"><a href="#L-4083"><span class="linenos">4083</span></a>
+</span><span id="L-4084"><a href="#L-4084"><span class="linenos">4084</span></a>
+</span><span id="L-4085"><a href="#L-4085"><span class="linenos">4085</span></a><span class="c1"># Helpers</span>
+</span><span id="L-4086"><a href="#L-4086"><span class="linenos">4086</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-4087"><a href="#L-4087"><span class="linenos">4087</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="L-4088"><a href="#L-4088"><span class="linenos">4088</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-4089"><a href="#L-4089"><span class="linenos">4089</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-4090"><a href="#L-4090"><span class="linenos">4090</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-4091"><a href="#L-4091"><span class="linenos">4091</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-4092"><a href="#L-4092"><span class="linenos">4092</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-4093"><a href="#L-4093"><span class="linenos">4093</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-4094"><a href="#L-4094"><span class="linenos">4094</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4095"><a href="#L-4095"><span class="linenos">4095</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-4096"><a href="#L-4096"><span class="linenos">4096</span></a> <span class="o">...</span>
+</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><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="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-4101"><a href="#L-4101"><span class="linenos">4101</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-4102"><a href="#L-4102"><span class="linenos">4102</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-4103"><a href="#L-4103"><span class="linenos">4103</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-4104"><a href="#L-4104"><span class="linenos">4104</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4105"><a href="#L-4105"><span class="linenos">4105</span></a> <span class="n">copy</span><span class="o">=</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 class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4107"><a href="#L-4107"><span class="linenos">4107</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4108"><a href="#L-4108"><span class="linenos">4108</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4109"><a href="#L-4109"><span class="linenos">4109</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4110"><a href="#L-4110"><span class="linenos">4110</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4111"><a href="#L-4111"><span class="linenos">4111</span></a><span class="p">):</span>
-</span><span id="L-4112"><a href="#L-4112"><span class="linenos">4112</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-4113"><a href="#L-4113"><span class="linenos">4113</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-4114"><a href="#L-4114"><span class="linenos">4114</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-4115"><a href="#L-4115"><span class="linenos">4115</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-4116"><a href="#L-4116"><span class="linenos">4116</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-4117"><a href="#L-4117"><span class="linenos">4117</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-4118"><a href="#L-4118"><span class="linenos">4118</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-4119"><a href="#L-4119"><span class="linenos">4119</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-4120"><a href="#L-4120"><span class="linenos">4120</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-4121"><a href="#L-4121"><span class="linenos">4121</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-4122"><a href="#L-4122"><span class="linenos">4122</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4123"><a href="#L-4123"><span class="linenos">4123</span></a> <span class="p">)</span>
-</span><span id="L-4124"><a href="#L-4124"><span class="linenos">4124</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-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="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-4127"><a href="#L-4127"><span class="linenos">4127</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-4128"><a href="#L-4128"><span class="linenos">4128</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-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 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-4131"><a href="#L-4131"><span class="linenos">4131</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-4132"><a href="#L-4132"><span class="linenos">4132</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-4133"><a href="#L-4133"><span class="linenos">4133</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-4134"><a href="#L-4134"><span class="linenos">4134</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-4135"><a href="#L-4135"><span class="linenos">4135</span></a>
-</span><span id="L-4136"><a href="#L-4136"><span class="linenos">4136</span></a>
-</span><span id="L-4137"><a href="#L-4137"><span class="linenos">4137</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-4138"><a href="#L-4138"><span class="linenos">4138</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-4139"><a href="#L-4139"><span class="linenos">4139</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-4140"><a href="#L-4140"><span class="linenos">4140</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-4141"><a href="#L-4141"><span class="linenos">4141</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4142"><a href="#L-4142"><span class="linenos">4142</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4143"><a href="#L-4143"><span class="linenos">4143</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4144"><a href="#L-4144"><span class="linenos">4144</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4145"><a href="#L-4145"><span class="linenos">4145</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4146"><a href="#L-4146"><span class="linenos">4146</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4147"><a href="#L-4147"><span class="linenos">4147</span></a><span class="p">):</span>
-</span><span id="L-4148"><a href="#L-4148"><span class="linenos">4148</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-4099"><a href="#L-4099"><span class="linenos">4099</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-4100"><a href="#L-4100"><span class="linenos">4100</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="L-4101"><a href="#L-4101"><span class="linenos">4101</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-4102"><a href="#L-4102"><span class="linenos">4102</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-4103"><a href="#L-4103"><span class="linenos">4103</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-4104"><a href="#L-4104"><span class="linenos">4104</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-4105"><a href="#L-4105"><span class="linenos">4105</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-4106"><a href="#L-4106"><span class="linenos">4106</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-4107"><a href="#L-4107"><span class="linenos">4107</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4108"><a href="#L-4108"><span class="linenos">4108</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-4109"><a href="#L-4109"><span class="linenos">4109</span></a> <span class="o">...</span>
+</span><span id="L-4110"><a href="#L-4110"><span class="linenos">4110</span></a>
+</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 class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="L-4113"><a href="#L-4113"><span class="linenos">4113</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-4114"><a href="#L-4114"><span class="linenos">4114</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-4115"><a href="#L-4115"><span class="linenos">4115</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-4116"><a href="#L-4116"><span class="linenos">4116</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-4117"><a href="#L-4117"><span class="linenos">4117</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-4118"><a href="#L-4118"><span class="linenos">4118</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-4119"><a href="#L-4119"><span class="linenos">4119</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4120"><a href="#L-4120"><span class="linenos">4120</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-4121"><a href="#L-4121"><span class="linenos">4121</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
+</span><span id="L-4122"><a href="#L-4122"><span class="linenos">4122</span></a>
+</span><span id="L-4123"><a href="#L-4123"><span class="linenos">4123</span></a><span class="sd"> Example:</span>
+</span><span id="L-4124"><a href="#L-4124"><span class="linenos">4124</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
+</span><span id="L-4125"><a href="#L-4125"><span class="linenos">4125</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
+</span><span id="L-4126"><a href="#L-4126"><span class="linenos">4126</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
+</span><span id="L-4127"><a href="#L-4127"><span class="linenos">4127</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
+</span><span id="L-4128"><a href="#L-4128"><span class="linenos">4128</span></a>
+</span><span id="L-4129"><a href="#L-4129"><span class="linenos">4129</span></a><span class="sd"> Args:</span>
+</span><span id="L-4130"><a href="#L-4130"><span class="linenos">4130</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
+</span><span id="L-4131"><a href="#L-4131"><span class="linenos">4131</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
+</span><span id="L-4132"><a href="#L-4132"><span class="linenos">4132</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="L-4133"><a href="#L-4133"><span class="linenos">4133</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-4134"><a href="#L-4134"><span class="linenos">4134</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
+</span><span id="L-4135"><a href="#L-4135"><span class="linenos">4135</span></a><span class="sd"> (automatically includes a space)</span>
+</span><span id="L-4136"><a href="#L-4136"><span class="linenos">4136</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-4137"><a href="#L-4137"><span class="linenos">4137</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-4138"><a href="#L-4138"><span class="linenos">4138</span></a><span class="sd"> that an input expression is a SQL string).</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 class="sd"> Returns:</span>
+</span><span id="L-4141"><a href="#L-4141"><span class="linenos">4141</span></a><span class="sd"> Expression: the parsed or given expression.</span>
+</span><span id="L-4142"><a href="#L-4142"><span class="linenos">4142</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4143"><a href="#L-4143"><span class="linenos">4143</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-4144"><a href="#L-4144"><span class="linenos">4144</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
+</span><span id="L-4145"><a href="#L-4145"><span class="linenos">4145</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-4146"><a href="#L-4146"><span class="linenos">4146</span></a> <span class="k">return</span> <span class="n">sql_or_expression</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 class="kn">import</span> <span class="nn">sqlglot</span>
</span><span id="L-4149"><a href="#L-4149"><span class="linenos">4149</span></a>
-</span><span id="L-4150"><a href="#L-4150"><span class="linenos">4150</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
-</span><span id="L-4151"><a href="#L-4151"><span class="linenos">4151</span></a> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-4152"><a href="#L-4152"><span class="linenos">4152</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-4153"><a href="#L-4153"><span class="linenos">4153</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-4154"><a href="#L-4154"><span class="linenos">4154</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-4155"><a href="#L-4155"><span class="linenos">4155</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-4156"><a href="#L-4156"><span class="linenos">4156</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4157"><a href="#L-4157"><span class="linenos">4157</span></a> <span class="p">)</span>
-</span><span id="L-4158"><a href="#L-4158"><span class="linenos">4158</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-4159"><a href="#L-4159"><span class="linenos">4159</span></a> <span class="p">]</span>
-</span><span id="L-4160"><a href="#L-4160"><span class="linenos">4160</span></a>
-</span><span id="L-4161"><a href="#L-4161"><span class="linenos">4161</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-4162"><a href="#L-4162"><span class="linenos">4162</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-4163"><a href="#L-4163"><span class="linenos">4163</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-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="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-4166"><a href="#L-4166"><span class="linenos">4166</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="L-4167"><a href="#L-4167"><span class="linenos">4167</span></a>
-</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="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-4170"><a href="#L-4170"><span class="linenos">4170</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-4171"><a href="#L-4171"><span class="linenos">4171</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-4172"><a href="#L-4172"><span class="linenos">4172</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-4173"><a href="#L-4173"><span class="linenos">4173</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4174"><a href="#L-4174"><span class="linenos">4174</span></a> <span class="n">append</span><span class="o">=</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="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4176"><a href="#L-4176"><span class="linenos">4176</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4177"><a href="#L-4177"><span class="linenos">4177</span></a> <span class="o">**</span><span class="n">opts</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 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-4180"><a href="#L-4180"><span class="linenos">4180</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-4181"><a href="#L-4181"><span class="linenos">4181</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-4182"><a href="#L-4182"><span class="linenos">4182</span></a>
-</span><span id="L-4183"><a href="#L-4183"><span class="linenos">4183</span></a> <span class="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-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 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-4186"><a href="#L-4186"><span class="linenos">4186</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-4187"><a href="#L-4187"><span class="linenos">4187</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-4188"><a href="#L-4188"><span class="linenos">4188</span></a>
-</span><span id="L-4189"><a href="#L-4189"><span class="linenos">4189</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4190"><a href="#L-4190"><span class="linenos">4190</span></a>
-</span><span id="L-4191"><a href="#L-4191"><span class="linenos">4191</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-4192"><a href="#L-4192"><span class="linenos">4192</span></a> <span class="k">return</span> <span class="n">inst</span>
-</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><span id="L-4195"><a href="#L-4195"><span class="linenos">4195</span></a><span class="k">def</span> <span class="nf">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">operator</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-4196"><a href="#L-4196"><span class="linenos">4196</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">]</span>
-</span><span id="L-4197"><a href="#L-4197"><span class="linenos">4197</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-</span><span id="L-4198"><a href="#L-4198"><span class="linenos">4198</span></a> <span class="k">if</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
-</span><span id="L-4199"><a href="#L-4199"><span class="linenos">4199</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap_operator</span><span class="p">(</span><span class="n">this</span><span class="p">)</span>
-</span><span id="L-4200"><a href="#L-4200"><span class="linenos">4200</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
-</span><span id="L-4201"><a href="#L-4201"><span class="linenos">4201</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">operator</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">_wrap_operator</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span>
-</span><span id="L-4202"><a href="#L-4202"><span class="linenos">4202</span></a> <span class="k">return</span> <span class="n">this</span>
-</span><span id="L-4203"><a href="#L-4203"><span class="linenos">4203</span></a>
-</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 class="k">def</span> <span class="nf">_wrap_operator</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span>
-</span><span id="L-4206"><a href="#L-4206"><span class="linenos">4206</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">Not</span><span class="p">)):</span>
-</span><span id="L-4207"><a href="#L-4207"><span class="linenos">4207</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="L-4208"><a href="#L-4208"><span class="linenos">4208</span></a> <span class="k">return</span> <span class="n">expression</span>
-</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><span id="L-4211"><a href="#L-4211"><span class="linenos">4211</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-4212"><a href="#L-4212"><span class="linenos">4212</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4213"><a href="#L-4213"><span class="linenos">4213</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
-</span><span id="L-4214"><a href="#L-4214"><span class="linenos">4214</span></a>
-</span><span id="L-4215"><a href="#L-4215"><span class="linenos">4215</span></a><span class="sd"> Example:</span>
-</span><span id="L-4216"><a href="#L-4216"><span class="linenos">4216</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-4217"><a href="#L-4217"><span class="linenos">4217</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
-</span><span id="L-4218"><a href="#L-4218"><span class="linenos">4218</span></a>
-</span><span id="L-4219"><a href="#L-4219"><span class="linenos">4219</span></a><span class="sd"> Args:</span>
-</span><span id="L-4220"><a href="#L-4220"><span class="linenos">4220</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-4221"><a href="#L-4221"><span class="linenos">4221</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4222"><a href="#L-4222"><span class="linenos">4222</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-4223"><a href="#L-4223"><span class="linenos">4223</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4224"><a href="#L-4224"><span class="linenos">4224</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-4225"><a href="#L-4225"><span class="linenos">4225</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4226"><a href="#L-4226"><span class="linenos">4226</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-4227"><a href="#L-4227"><span class="linenos">4227</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4228"><a href="#L-4228"><span class="linenos">4228</span></a><span class="sd"> Union: the syntax tree for the UNION expression.</span>
-</span><span id="L-4229"><a href="#L-4229"><span class="linenos">4229</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4230"><a href="#L-4230"><span class="linenos">4230</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4231"><a href="#L-4231"><span class="linenos">4231</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-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 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-4234"><a href="#L-4234"><span class="linenos">4234</span></a>
-</span><span id="L-4235"><a href="#L-4235"><span class="linenos">4235</span></a>
-</span><span id="L-4236"><a href="#L-4236"><span class="linenos">4236</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-4237"><a href="#L-4237"><span class="linenos">4237</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4238"><a href="#L-4238"><span class="linenos">4238</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
-</span><span id="L-4239"><a href="#L-4239"><span class="linenos">4239</span></a>
-</span><span id="L-4240"><a href="#L-4240"><span class="linenos">4240</span></a><span class="sd"> Example:</span>
-</span><span id="L-4241"><a href="#L-4241"><span class="linenos">4241</span></a><span class="sd"> &gt;&gt;&gt; intersect(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="L-4242"><a href="#L-4242"><span class="linenos">4242</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
-</span><span id="L-4243"><a href="#L-4243"><span class="linenos">4243</span></a>
-</span><span id="L-4244"><a href="#L-4244"><span class="linenos">4244</span></a><span class="sd"> Args:</span>
-</span><span id="L-4245"><a href="#L-4245"><span class="linenos">4245</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-4246"><a href="#L-4246"><span class="linenos">4246</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4247"><a href="#L-4247"><span class="linenos">4247</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-4248"><a href="#L-4248"><span class="linenos">4248</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4249"><a href="#L-4249"><span class="linenos">4249</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-4250"><a href="#L-4250"><span class="linenos">4250</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4251"><a href="#L-4251"><span class="linenos">4251</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-4252"><a href="#L-4252"><span class="linenos">4252</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4253"><a href="#L-4253"><span class="linenos">4253</span></a><span class="sd"> Intersect: the syntax tree for the INTERSECT expression.</span>
-</span><span id="L-4254"><a href="#L-4254"><span class="linenos">4254</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4255"><a href="#L-4255"><span class="linenos">4255</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4256"><a href="#L-4256"><span class="linenos">4256</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4257"><a href="#L-4257"><span class="linenos">4257</span></a>
-</span><span id="L-4258"><a href="#L-4258"><span class="linenos">4258</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-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><span id="L-4261"><a href="#L-4261"><span class="linenos">4261</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-4262"><a href="#L-4262"><span class="linenos">4262</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4263"><a href="#L-4263"><span class="linenos">4263</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</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="sd"> Example:</span>
-</span><span id="L-4266"><a href="#L-4266"><span class="linenos">4266</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-4267"><a href="#L-4267"><span class="linenos">4267</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="L-4268"><a href="#L-4268"><span class="linenos">4268</span></a>
-</span><span id="L-4269"><a href="#L-4269"><span class="linenos">4269</span></a><span class="sd"> Args:</span>
-</span><span id="L-4270"><a href="#L-4270"><span class="linenos">4270</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-4271"><a href="#L-4271"><span class="linenos">4271</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4272"><a href="#L-4272"><span class="linenos">4272</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-4273"><a href="#L-4273"><span class="linenos">4273</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4274"><a href="#L-4274"><span class="linenos">4274</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-4275"><a href="#L-4275"><span class="linenos">4275</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4276"><a href="#L-4276"><span class="linenos">4276</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-4277"><a href="#L-4277"><span class="linenos">4277</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4278"><a href="#L-4278"><span class="linenos">4278</span></a><span class="sd"> Except: the syntax tree for the EXCEPT statement.</span>
-</span><span id="L-4279"><a href="#L-4279"><span class="linenos">4279</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4280"><a href="#L-4280"><span class="linenos">4280</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4281"><a href="#L-4281"><span class="linenos">4281</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4150"><a href="#L-4150"><span class="linenos">4150</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-4151"><a href="#L-4151"><span class="linenos">4151</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
+</span><span id="L-4152"><a href="#L-4152"><span class="linenos">4152</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-4153"><a href="#L-4153"><span class="linenos">4153</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-4154"><a href="#L-4154"><span class="linenos">4154</span></a>
+</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 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-4157"><a href="#L-4157"><span class="linenos">4157</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="n">instance</span>
+</span><span id="L-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><span id="L-4160"><a href="#L-4160"><span class="linenos">4160</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-4161"><a href="#L-4161"><span class="linenos">4161</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-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><span id="L-4164"><a href="#L-4164"><span class="linenos">4164</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span>
+</span><span id="L-4165"><a href="#L-4165"><span class="linenos">4165</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-4166"><a href="#L-4166"><span class="linenos">4166</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-4167"><a href="#L-4167"><span class="linenos">4167</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-4168"><a href="#L-4168"><span class="linenos">4168</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4169"><a href="#L-4169"><span class="linenos">4169</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4170"><a href="#L-4170"><span class="linenos">4170</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4171"><a href="#L-4171"><span class="linenos">4171</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4172"><a href="#L-4172"><span class="linenos">4172</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4173"><a href="#L-4173"><span class="linenos">4173</span></a><span class="p">):</span>
+</span><span id="L-4174"><a href="#L-4174"><span class="linenos">4174</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-4175"><a href="#L-4175"><span class="linenos">4175</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="L-4176"><a href="#L-4176"><span class="linenos">4176</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-4177"><a href="#L-4177"><span class="linenos">4177</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-4178"><a href="#L-4178"><span class="linenos">4178</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-4179"><a href="#L-4179"><span class="linenos">4179</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-4180"><a href="#L-4180"><span class="linenos">4180</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-4181"><a href="#L-4181"><span class="linenos">4181</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-4182"><a href="#L-4182"><span class="linenos">4182</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4183"><a href="#L-4183"><span class="linenos">4183</span></a> <span class="p">)</span>
+</span><span id="L-4184"><a href="#L-4184"><span class="linenos">4184</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-4185"><a href="#L-4185"><span class="linenos">4185</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-4186"><a href="#L-4186"><span class="linenos">4186</span></a>
+</span><span id="L-4187"><a href="#L-4187"><span class="linenos">4187</span></a>
+</span><span id="L-4188"><a href="#L-4188"><span class="linenos">4188</span></a><span class="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-4189"><a href="#L-4189"><span class="linenos">4189</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-4190"><a href="#L-4190"><span class="linenos">4190</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-4191"><a href="#L-4191"><span class="linenos">4191</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-4192"><a href="#L-4192"><span class="linenos">4192</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4193"><a href="#L-4193"><span class="linenos">4193</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4194"><a href="#L-4194"><span class="linenos">4194</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4195"><a href="#L-4195"><span class="linenos">4195</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4196"><a href="#L-4196"><span class="linenos">4196</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4197"><a href="#L-4197"><span class="linenos">4197</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4198"><a href="#L-4198"><span class="linenos">4198</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4199"><a href="#L-4199"><span class="linenos">4199</span></a><span class="p">):</span>
+</span><span id="L-4200"><a href="#L-4200"><span class="linenos">4200</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-4201"><a href="#L-4201"><span class="linenos">4201</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-4202"><a href="#L-4202"><span class="linenos">4202</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-4203"><a href="#L-4203"><span class="linenos">4203</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-4204"><a href="#L-4204"><span class="linenos">4204</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-4205"><a href="#L-4205"><span class="linenos">4205</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-4206"><a href="#L-4206"><span class="linenos">4206</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-4207"><a href="#L-4207"><span class="linenos">4207</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-4208"><a href="#L-4208"><span class="linenos">4208</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-4209"><a href="#L-4209"><span class="linenos">4209</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-4210"><a href="#L-4210"><span class="linenos">4210</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4211"><a href="#L-4211"><span class="linenos">4211</span></a> <span class="p">)</span>
+</span><span id="L-4212"><a href="#L-4212"><span class="linenos">4212</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-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="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-4215"><a href="#L-4215"><span class="linenos">4215</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-4216"><a href="#L-4216"><span class="linenos">4216</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-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="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-4219"><a href="#L-4219"><span class="linenos">4219</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-4220"><a href="#L-4220"><span class="linenos">4220</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-4221"><a href="#L-4221"><span class="linenos">4221</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-4222"><a href="#L-4222"><span class="linenos">4222</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-4223"><a href="#L-4223"><span class="linenos">4223</span></a>
+</span><span id="L-4224"><a href="#L-4224"><span class="linenos">4224</span></a>
+</span><span id="L-4225"><a href="#L-4225"><span class="linenos">4225</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-4226"><a href="#L-4226"><span class="linenos">4226</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-4227"><a href="#L-4227"><span class="linenos">4227</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-4228"><a href="#L-4228"><span class="linenos">4228</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-4229"><a href="#L-4229"><span class="linenos">4229</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4230"><a href="#L-4230"><span class="linenos">4230</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4231"><a href="#L-4231"><span class="linenos">4231</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4232"><a href="#L-4232"><span class="linenos">4232</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4233"><a href="#L-4233"><span class="linenos">4233</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4234"><a href="#L-4234"><span class="linenos">4234</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4235"><a href="#L-4235"><span class="linenos">4235</span></a><span class="p">):</span>
+</span><span id="L-4236"><a href="#L-4236"><span class="linenos">4236</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-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="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
+</span><span id="L-4239"><a href="#L-4239"><span class="linenos">4239</span></a> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-4240"><a href="#L-4240"><span class="linenos">4240</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-4241"><a href="#L-4241"><span class="linenos">4241</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-4242"><a href="#L-4242"><span class="linenos">4242</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-4243"><a href="#L-4243"><span class="linenos">4243</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-4244"><a href="#L-4244"><span class="linenos">4244</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4245"><a href="#L-4245"><span class="linenos">4245</span></a> <span class="p">)</span>
+</span><span id="L-4246"><a href="#L-4246"><span class="linenos">4246</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-4247"><a href="#L-4247"><span class="linenos">4247</span></a> <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="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-4250"><a href="#L-4250"><span class="linenos">4250</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-4251"><a href="#L-4251"><span class="linenos">4251</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-4252"><a href="#L-4252"><span class="linenos">4252</span></a>
+</span><span id="L-4253"><a href="#L-4253"><span class="linenos">4253</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-4254"><a href="#L-4254"><span class="linenos">4254</span></a> <span class="k">return</span> <span class="n">inst</span>
+</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><span id="L-4257"><a href="#L-4257"><span class="linenos">4257</span></a><span class="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-4258"><a href="#L-4258"><span class="linenos">4258</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-4259"><a href="#L-4259"><span class="linenos">4259</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-4260"><a href="#L-4260"><span class="linenos">4260</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-4261"><a href="#L-4261"><span class="linenos">4261</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4262"><a href="#L-4262"><span class="linenos">4262</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4263"><a href="#L-4263"><span class="linenos">4263</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4264"><a href="#L-4264"><span class="linenos">4264</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4265"><a href="#L-4265"><span class="linenos">4265</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4266"><a href="#L-4266"><span class="linenos">4266</span></a><span class="p">):</span>
+</span><span id="L-4267"><a href="#L-4267"><span class="linenos">4267</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-4268"><a href="#L-4268"><span class="linenos">4268</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-4269"><a href="#L-4269"><span class="linenos">4269</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-4270"><a href="#L-4270"><span class="linenos">4270</span></a>
+</span><span id="L-4271"><a href="#L-4271"><span class="linenos">4271</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-4272"><a href="#L-4272"><span class="linenos">4272</span></a>
+</span><span id="L-4273"><a href="#L-4273"><span class="linenos">4273</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-4274"><a href="#L-4274"><span class="linenos">4274</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-4275"><a href="#L-4275"><span class="linenos">4275</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-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="n">node</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4278"><a href="#L-4278"><span class="linenos">4278</span></a>
+</span><span id="L-4279"><a href="#L-4279"><span class="linenos">4279</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-4280"><a href="#L-4280"><span class="linenos">4280</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="L-4281"><a href="#L-4281"><span class="linenos">4281</span></a>
</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 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-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><span id="L-4286"><a href="#L-4286"><span class="linenos">4286</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-4287"><a href="#L-4287"><span class="linenos">4287</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4288"><a href="#L-4288"><span class="linenos">4288</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
-</span><span id="L-4289"><a href="#L-4289"><span class="linenos">4289</span></a>
-</span><span id="L-4290"><a href="#L-4290"><span class="linenos">4290</span></a><span class="sd"> Example:</span>
-</span><span id="L-4291"><a href="#L-4291"><span class="linenos">4291</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-4292"><a href="#L-4292"><span class="linenos">4292</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="L-4293"><a href="#L-4293"><span class="linenos">4293</span></a>
-</span><span id="L-4294"><a href="#L-4294"><span class="linenos">4294</span></a><span class="sd"> Args:</span>
-</span><span id="L-4295"><a href="#L-4295"><span class="linenos">4295</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
-</span><span id="L-4296"><a href="#L-4296"><span class="linenos">4296</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4297"><a href="#L-4297"><span class="linenos">4297</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="L-4298"><a href="#L-4298"><span class="linenos">4298</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-4299"><a href="#L-4299"><span class="linenos">4299</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-4300"><a href="#L-4300"><span class="linenos">4300</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="L-4301"><a href="#L-4301"><span class="linenos">4301</span></a>
-</span><span id="L-4302"><a href="#L-4302"><span class="linenos">4302</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4303"><a href="#L-4303"><span class="linenos">4303</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="L-4304"><a href="#L-4304"><span class="linenos">4304</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4305"><a href="#L-4305"><span class="linenos">4305</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-4283"><a href="#L-4283"><span class="linenos">4283</span></a><span class="k">def</span> <span class="nf">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">operator</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
+</span><span id="L-4284"><a href="#L-4284"><span class="linenos">4284</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">]</span>
+</span><span id="L-4285"><a href="#L-4285"><span class="linenos">4285</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+</span><span id="L-4286"><a href="#L-4286"><span class="linenos">4286</span></a> <span class="k">if</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
+</span><span id="L-4287"><a href="#L-4287"><span class="linenos">4287</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap_operator</span><span class="p">(</span><span class="n">this</span><span class="p">)</span>
+</span><span id="L-4288"><a href="#L-4288"><span class="linenos">4288</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
+</span><span id="L-4289"><a href="#L-4289"><span class="linenos">4289</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">operator</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">_wrap_operator</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span>
+</span><span id="L-4290"><a href="#L-4290"><span class="linenos">4290</span></a> <span class="k">return</span> <span class="n">this</span>
+</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">def</span> <span class="nf">_wrap_operator</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span>
+</span><span id="L-4294"><a href="#L-4294"><span class="linenos">4294</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">Not</span><span class="p">)):</span>
+</span><span id="L-4295"><a href="#L-4295"><span class="linenos">4295</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="L-4296"><a href="#L-4296"><span class="linenos">4296</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-4297"><a href="#L-4297"><span class="linenos">4297</span></a>
+</span><span id="L-4298"><a href="#L-4298"><span class="linenos">4298</span></a>
+</span><span id="L-4299"><a href="#L-4299"><span class="linenos">4299</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
+</span><span id="L-4300"><a href="#L-4300"><span class="linenos">4300</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4301"><a href="#L-4301"><span class="linenos">4301</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</span><span id="L-4302"><a href="#L-4302"><span class="linenos">4302</span></a>
+</span><span id="L-4303"><a href="#L-4303"><span class="linenos">4303</span></a><span class="sd"> Example:</span>
+</span><span id="L-4304"><a href="#L-4304"><span class="linenos">4304</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-4305"><a href="#L-4305"><span class="linenos">4305</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
</span><span id="L-4306"><a href="#L-4306"><span class="linenos">4306</span></a>
-</span><span id="L-4307"><a href="#L-4307"><span class="linenos">4307</span></a>
-</span><span id="L-4308"><a href="#L-4308"><span class="linenos">4308</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-4309"><a href="#L-4309"><span class="linenos">4309</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4310"><a href="#L-4310"><span class="linenos">4310</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</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 class="sd"> Example:</span>
-</span><span id="L-4313"><a href="#L-4313"><span class="linenos">4313</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-4314"><a href="#L-4314"><span class="linenos">4314</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</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 class="sd"> Args:</span>
-</span><span id="L-4317"><a href="#L-4317"><span class="linenos">4317</span></a><span class="sd"> *expressions (str | Expression): the SQL code string to parse as the FROM expressions of a</span>
-</span><span id="L-4318"><a href="#L-4318"><span class="linenos">4318</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4319"><a href="#L-4319"><span class="linenos">4319</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
-</span><span id="L-4320"><a href="#L-4320"><span class="linenos">4320</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-4321"><a href="#L-4321"><span class="linenos">4321</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-4322"><a href="#L-4322"><span class="linenos">4322</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-4307"><a href="#L-4307"><span class="linenos">4307</span></a><span class="sd"> Args:</span>
+</span><span id="L-4308"><a href="#L-4308"><span class="linenos">4308</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-4309"><a href="#L-4309"><span class="linenos">4309</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4310"><a href="#L-4310"><span class="linenos">4310</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-4311"><a href="#L-4311"><span class="linenos">4311</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4312"><a href="#L-4312"><span class="linenos">4312</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-4313"><a href="#L-4313"><span class="linenos">4313</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-4314"><a href="#L-4314"><span class="linenos">4314</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-4315"><a href="#L-4315"><span class="linenos">4315</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4316"><a href="#L-4316"><span class="linenos">4316</span></a><span class="sd"> Union: the syntax tree for the UNION expression.</span>
+</span><span id="L-4317"><a href="#L-4317"><span class="linenos">4317</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4318"><a href="#L-4318"><span class="linenos">4318</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4319"><a href="#L-4319"><span class="linenos">4319</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-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">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-4322"><a href="#L-4322"><span class="linenos">4322</span></a>
</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 class="sd"> Returns:</span>
-</span><span id="L-4325"><a href="#L-4325"><span class="linenos">4325</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="L-4326"><a href="#L-4326"><span class="linenos">4326</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4327"><a href="#L-4327"><span class="linenos">4327</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4328"><a href="#L-4328"><span class="linenos">4328</span></a>
-</span><span id="L-4329"><a href="#L-4329"><span class="linenos">4329</span></a>
-</span><span id="L-4330"><a href="#L-4330"><span class="linenos">4330</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
-</span><span id="L-4331"><a href="#L-4331"><span class="linenos">4331</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-4332"><a href="#L-4332"><span class="linenos">4332</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
-</span><span id="L-4333"><a href="#L-4333"><span class="linenos">4333</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-4334"><a href="#L-4334"><span class="linenos">4334</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-4335"><a href="#L-4335"><span class="linenos">4335</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-4336"><a href="#L-4336"><span class="linenos">4336</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4337"><a href="#L-4337"><span class="linenos">4337</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
-</span><span id="L-4338"><a href="#L-4338"><span class="linenos">4338</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4339"><a href="#L-4339"><span class="linenos">4339</span></a><span class="sd"> Creates an update statement.</span>
-</span><span id="L-4340"><a href="#L-4340"><span class="linenos">4340</span></a>
-</span><span id="L-4341"><a href="#L-4341"><span class="linenos">4341</span></a><span class="sd"> Example:</span>
-</span><span id="L-4342"><a href="#L-4342"><span class="linenos">4342</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-4343"><a href="#L-4343"><span class="linenos">4343</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-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="sd"> Args:</span>
-</span><span id="L-4346"><a href="#L-4346"><span class="linenos">4346</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
-</span><span id="L-4347"><a href="#L-4347"><span class="linenos">4347</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
-</span><span id="L-4348"><a href="#L-4348"><span class="linenos">4348</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="L-4349"><a href="#L-4349"><span class="linenos">4349</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
-</span><span id="L-4350"><a href="#L-4350"><span class="linenos">4350</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-4351"><a href="#L-4351"><span class="linenos">4351</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-4324"><a href="#L-4324"><span class="linenos">4324</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
+</span><span id="L-4325"><a href="#L-4325"><span class="linenos">4325</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4326"><a href="#L-4326"><span class="linenos">4326</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</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 class="sd"> Example:</span>
+</span><span id="L-4329"><a href="#L-4329"><span class="linenos">4329</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-4330"><a href="#L-4330"><span class="linenos">4330</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</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 class="sd"> Args:</span>
+</span><span id="L-4333"><a href="#L-4333"><span class="linenos">4333</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-4334"><a href="#L-4334"><span class="linenos">4334</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4335"><a href="#L-4335"><span class="linenos">4335</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-4336"><a href="#L-4336"><span class="linenos">4336</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4337"><a href="#L-4337"><span class="linenos">4337</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-4338"><a href="#L-4338"><span class="linenos">4338</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-4339"><a href="#L-4339"><span class="linenos">4339</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-4340"><a href="#L-4340"><span class="linenos">4340</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4341"><a href="#L-4341"><span class="linenos">4341</span></a><span class="sd"> Intersect: the syntax tree for the INTERSECT expression.</span>
+</span><span id="L-4342"><a href="#L-4342"><span class="linenos">4342</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4343"><a href="#L-4343"><span class="linenos">4343</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4344"><a href="#L-4344"><span class="linenos">4344</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4345"><a href="#L-4345"><span class="linenos">4345</span></a>
+</span><span id="L-4346"><a href="#L-4346"><span class="linenos">4346</span></a> <span class="k">return</span> <span class="n">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-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 class="k">def</span> <span class="nf">except_</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
+</span><span id="L-4350"><a href="#L-4350"><span class="linenos">4350</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4351"><a href="#L-4351"><span class="linenos">4351</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
</span><span id="L-4352"><a href="#L-4352"><span class="linenos">4352</span></a>
-</span><span id="L-4353"><a href="#L-4353"><span class="linenos">4353</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4354"><a href="#L-4354"><span class="linenos">4354</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
-</span><span id="L-4355"><a href="#L-4355"><span class="linenos">4355</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4356"><a href="#L-4356"><span class="linenos">4356</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-4357"><a href="#L-4357"><span class="linenos">4357</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-4358"><a href="#L-4358"><span class="linenos">4358</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="L-4359"><a href="#L-4359"><span class="linenos">4359</span></a> <span class="p">[</span>
-</span><span id="L-4360"><a href="#L-4360"><span class="linenos">4360</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-4361"><a href="#L-4361"><span class="linenos">4361</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-4362"><a href="#L-4362"><span class="linenos">4362</span></a> <span class="p">],</span>
-</span><span id="L-4363"><a href="#L-4363"><span class="linenos">4363</span></a> <span class="p">)</span>
-</span><span id="L-4364"><a href="#L-4364"><span class="linenos">4364</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
-</span><span id="L-4365"><a href="#L-4365"><span class="linenos">4365</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-4366"><a href="#L-4366"><span class="linenos">4366</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="L-4367"><a href="#L-4367"><span class="linenos">4367</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-4368"><a href="#L-4368"><span class="linenos">4368</span></a> <span class="p">)</span>
-</span><span id="L-4369"><a href="#L-4369"><span class="linenos">4369</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-4370"><a href="#L-4370"><span class="linenos">4370</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-4371"><a href="#L-4371"><span class="linenos">4371</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="L-4372"><a href="#L-4372"><span class="linenos">4372</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-4373"><a href="#L-4373"><span class="linenos">4373</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="L-4374"><a href="#L-4374"><span class="linenos">4374</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-4375"><a href="#L-4375"><span class="linenos">4375</span></a> <span class="p">)</span>
-</span><span id="L-4376"><a href="#L-4376"><span class="linenos">4376</span></a> <span class="k">return</span> <span class="n">update_expr</span>
+</span><span id="L-4353"><a href="#L-4353"><span class="linenos">4353</span></a><span class="sd"> Example:</span>
+</span><span id="L-4354"><a href="#L-4354"><span class="linenos">4354</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-4355"><a href="#L-4355"><span class="linenos">4355</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="L-4356"><a href="#L-4356"><span class="linenos">4356</span></a>
+</span><span id="L-4357"><a href="#L-4357"><span class="linenos">4357</span></a><span class="sd"> Args:</span>
+</span><span id="L-4358"><a href="#L-4358"><span class="linenos">4358</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-4359"><a href="#L-4359"><span class="linenos">4359</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4360"><a href="#L-4360"><span class="linenos">4360</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-4361"><a href="#L-4361"><span class="linenos">4361</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4362"><a href="#L-4362"><span class="linenos">4362</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-4363"><a href="#L-4363"><span class="linenos">4363</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-4364"><a href="#L-4364"><span class="linenos">4364</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-4365"><a href="#L-4365"><span class="linenos">4365</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4366"><a href="#L-4366"><span class="linenos">4366</span></a><span class="sd"> Except: the syntax tree for the EXCEPT statement.</span>
+</span><span id="L-4367"><a href="#L-4367"><span class="linenos">4367</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4368"><a href="#L-4368"><span class="linenos">4368</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4369"><a href="#L-4369"><span class="linenos">4369</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4370"><a href="#L-4370"><span class="linenos">4370</span></a>
+</span><span id="L-4371"><a href="#L-4371"><span class="linenos">4371</span></a> <span class="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-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><span id="L-4374"><a href="#L-4374"><span class="linenos">4374</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-4375"><a href="#L-4375"><span class="linenos">4375</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4376"><a href="#L-4376"><span class="linenos">4376</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
</span><span id="L-4377"><a href="#L-4377"><span class="linenos">4377</span></a>
-</span><span id="L-4378"><a href="#L-4378"><span class="linenos">4378</span></a>
-</span><span id="L-4379"><a href="#L-4379"><span class="linenos">4379</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="L-4380"><a href="#L-4380"><span class="linenos">4380</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-4381"><a href="#L-4381"><span class="linenos">4381</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-4382"><a href="#L-4382"><span class="linenos">4382</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-4383"><a href="#L-4383"><span class="linenos">4383</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-4384"><a href="#L-4384"><span class="linenos">4384</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4385"><a href="#L-4385"><span class="linenos">4385</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="L-4386"><a href="#L-4386"><span class="linenos">4386</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4387"><a href="#L-4387"><span class="linenos">4387</span></a><span class="sd"> Builds a delete statement.</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="sd"> Example:</span>
-</span><span id="L-4390"><a href="#L-4390"><span class="linenos">4390</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-4391"><a href="#L-4391"><span class="linenos">4391</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</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 class="sd"> Args:</span>
-</span><span id="L-4394"><a href="#L-4394"><span class="linenos">4394</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="L-4395"><a href="#L-4395"><span class="linenos">4395</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="L-4396"><a href="#L-4396"><span class="linenos">4396</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-4397"><a href="#L-4397"><span class="linenos">4397</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
-</span><span id="L-4400"><a href="#L-4400"><span class="linenos">4400</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
-</span><span id="L-4401"><a href="#L-4401"><span class="linenos">4401</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4402"><a href="#L-4402"><span class="linenos">4402</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-4403"><a href="#L-4403"><span class="linenos">4403</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="L-4404"><a href="#L-4404"><span class="linenos">4404</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-4405"><a href="#L-4405"><span class="linenos">4405</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="L-4406"><a href="#L-4406"><span class="linenos">4406</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4407"><a href="#L-4407"><span class="linenos">4407</span></a> <span class="k">return</span> <span class="n">delete_expr</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">def</span> <span class="nf">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-4411"><a href="#L-4411"><span class="linenos">4411</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4412"><a href="#L-4412"><span class="linenos">4412</span></a><span class="sd"> Initialize a logical condition expression.</span>
-</span><span id="L-4413"><a href="#L-4413"><span class="linenos">4413</span></a>
-</span><span id="L-4414"><a href="#L-4414"><span class="linenos">4414</span></a><span class="sd"> Example:</span>
-</span><span id="L-4415"><a href="#L-4415"><span class="linenos">4415</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
-</span><span id="L-4416"><a href="#L-4416"><span class="linenos">4416</span></a><span class="sd"> &#39;x = 1&#39;</span>
+</span><span id="L-4378"><a href="#L-4378"><span class="linenos">4378</span></a><span class="sd"> Example:</span>
+</span><span id="L-4379"><a href="#L-4379"><span class="linenos">4379</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-4380"><a href="#L-4380"><span class="linenos">4380</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</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="sd"> Args:</span>
+</span><span id="L-4383"><a href="#L-4383"><span class="linenos">4383</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
+</span><span id="L-4384"><a href="#L-4384"><span class="linenos">4384</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4385"><a href="#L-4385"><span class="linenos">4385</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="L-4386"><a href="#L-4386"><span class="linenos">4386</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-4387"><a href="#L-4387"><span class="linenos">4387</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-4388"><a href="#L-4388"><span class="linenos">4388</span></a><span class="sd"> that an input expression is a SQL string).</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="sd"> Returns:</span>
+</span><span id="L-4391"><a href="#L-4391"><span class="linenos">4391</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="L-4392"><a href="#L-4392"><span class="linenos">4392</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4393"><a href="#L-4393"><span class="linenos">4393</span></a> <span class="k">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-4394"><a href="#L-4394"><span class="linenos">4394</span></a>
+</span><span id="L-4395"><a href="#L-4395"><span class="linenos">4395</span></a>
+</span><span id="L-4396"><a href="#L-4396"><span class="linenos">4396</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-4397"><a href="#L-4397"><span class="linenos">4397</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4398"><a href="#L-4398"><span class="linenos">4398</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
+</span><span id="L-4399"><a href="#L-4399"><span class="linenos">4399</span></a>
+</span><span id="L-4400"><a href="#L-4400"><span class="linenos">4400</span></a><span class="sd"> Example:</span>
+</span><span id="L-4401"><a href="#L-4401"><span class="linenos">4401</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-4402"><a href="#L-4402"><span class="linenos">4402</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</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="sd"> Args:</span>
+</span><span id="L-4405"><a href="#L-4405"><span class="linenos">4405</span></a><span class="sd"> *expressions (str | Expression): the SQL code string to parse as the FROM expressions of a</span>
+</span><span id="L-4406"><a href="#L-4406"><span class="linenos">4406</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4407"><a href="#L-4407"><span class="linenos">4407</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
+</span><span id="L-4408"><a href="#L-4408"><span class="linenos">4408</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-4409"><a href="#L-4409"><span class="linenos">4409</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-4410"><a href="#L-4410"><span class="linenos">4410</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-4411"><a href="#L-4411"><span class="linenos">4411</span></a>
+</span><span id="L-4412"><a href="#L-4412"><span class="linenos">4412</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4413"><a href="#L-4413"><span class="linenos">4413</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="L-4414"><a href="#L-4414"><span class="linenos">4414</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4415"><a href="#L-4415"><span class="linenos">4415</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-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><span id="L-4418"><a href="#L-4418"><span class="linenos">4418</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
-</span><span id="L-4419"><a href="#L-4419"><span class="linenos">4419</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
-</span><span id="L-4420"><a href="#L-4420"><span class="linenos">4420</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
-</span><span id="L-4421"><a href="#L-4421"><span class="linenos">4421</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
-</span><span id="L-4422"><a href="#L-4422"><span class="linenos">4422</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</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 class="sd"> Args:</span>
-</span><span id="L-4425"><a href="#L-4425"><span class="linenos">4425</span></a><span class="sd"> *expression (str | Expression): the SQL code string to parse.</span>
-</span><span id="L-4426"><a href="#L-4426"><span class="linenos">4426</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4427"><a href="#L-4427"><span class="linenos">4427</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
-</span><span id="L-4428"><a href="#L-4428"><span class="linenos">4428</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-4429"><a href="#L-4429"><span class="linenos">4429</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-4430"><a href="#L-4430"><span class="linenos">4430</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="L-4431"><a href="#L-4431"><span class="linenos">4431</span></a>
-</span><span id="L-4432"><a href="#L-4432"><span class="linenos">4432</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4433"><a href="#L-4433"><span class="linenos">4433</span></a><span class="sd"> Condition: the expression</span>
-</span><span id="L-4434"><a href="#L-4434"><span class="linenos">4434</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4435"><a href="#L-4435"><span class="linenos">4435</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span> <span class="c1"># type: ignore</span>
-</span><span id="L-4436"><a href="#L-4436"><span class="linenos">4436</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-4437"><a href="#L-4437"><span class="linenos">4437</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
-</span><span id="L-4438"><a href="#L-4438"><span class="linenos">4438</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-4439"><a href="#L-4439"><span class="linenos">4439</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4440"><a href="#L-4440"><span class="linenos">4440</span></a> <span class="p">)</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">def</span> <span class="nf">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
-</span><span id="L-4444"><a href="#L-4444"><span class="linenos">4444</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4445"><a href="#L-4445"><span class="linenos">4445</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
-</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="sd"> Example:</span>
-</span><span id="L-4448"><a href="#L-4448"><span class="linenos">4448</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-4449"><a href="#L-4449"><span class="linenos">4449</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
-</span><span id="L-4450"><a href="#L-4450"><span class="linenos">4450</span></a>
-</span><span id="L-4451"><a href="#L-4451"><span class="linenos">4451</span></a><span class="sd"> Args:</span>
-</span><span id="L-4452"><a href="#L-4452"><span class="linenos">4452</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-4453"><a href="#L-4453"><span class="linenos">4453</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4454"><a href="#L-4454"><span class="linenos">4454</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4455"><a href="#L-4455"><span class="linenos">4455</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
-</span><span id="L-4458"><a href="#L-4458"><span class="linenos">4458</span></a><span class="sd"> And: the new condition</span>
-</span><span id="L-4459"><a href="#L-4459"><span class="linenos">4459</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4460"><a href="#L-4460"><span class="linenos">4460</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4461"><a href="#L-4461"><span class="linenos">4461</span></a>
-</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">def</span> <span class="nf">or_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
-</span><span id="L-4464"><a href="#L-4464"><span class="linenos">4464</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4465"><a href="#L-4465"><span class="linenos">4465</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
+</span><span id="L-4418"><a href="#L-4418"><span class="linenos">4418</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
+</span><span id="L-4419"><a href="#L-4419"><span class="linenos">4419</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-4420"><a href="#L-4420"><span class="linenos">4420</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
+</span><span id="L-4421"><a href="#L-4421"><span class="linenos">4421</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-4422"><a href="#L-4422"><span class="linenos">4422</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-4423"><a href="#L-4423"><span class="linenos">4423</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-4424"><a href="#L-4424"><span class="linenos">4424</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4425"><a href="#L-4425"><span class="linenos">4425</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
+</span><span id="L-4426"><a href="#L-4426"><span class="linenos">4426</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4427"><a href="#L-4427"><span class="linenos">4427</span></a><span class="sd"> Creates an update statement.</span>
+</span><span id="L-4428"><a href="#L-4428"><span class="linenos">4428</span></a>
+</span><span id="L-4429"><a href="#L-4429"><span class="linenos">4429</span></a><span class="sd"> Example:</span>
+</span><span id="L-4430"><a href="#L-4430"><span class="linenos">4430</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-4431"><a href="#L-4431"><span class="linenos">4431</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-4432"><a href="#L-4432"><span class="linenos">4432</span></a>
+</span><span id="L-4433"><a href="#L-4433"><span class="linenos">4433</span></a><span class="sd"> Args:</span>
+</span><span id="L-4434"><a href="#L-4434"><span class="linenos">4434</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
+</span><span id="L-4435"><a href="#L-4435"><span class="linenos">4435</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
+</span><span id="L-4436"><a href="#L-4436"><span class="linenos">4436</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="L-4437"><a href="#L-4437"><span class="linenos">4437</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
+</span><span id="L-4438"><a href="#L-4438"><span class="linenos">4438</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-4439"><a href="#L-4439"><span class="linenos">4439</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</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="sd"> Returns:</span>
+</span><span id="L-4442"><a href="#L-4442"><span class="linenos">4442</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
+</span><span id="L-4443"><a href="#L-4443"><span class="linenos">4443</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4444"><a href="#L-4444"><span class="linenos">4444</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-4445"><a href="#L-4445"><span class="linenos">4445</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-4446"><a href="#L-4446"><span class="linenos">4446</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="L-4447"><a href="#L-4447"><span class="linenos">4447</span></a> <span class="p">[</span>
+</span><span id="L-4448"><a href="#L-4448"><span class="linenos">4448</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-4449"><a href="#L-4449"><span class="linenos">4449</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-4450"><a href="#L-4450"><span class="linenos">4450</span></a> <span class="p">],</span>
+</span><span id="L-4451"><a href="#L-4451"><span class="linenos">4451</span></a> <span class="p">)</span>
+</span><span id="L-4452"><a href="#L-4452"><span class="linenos">4452</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
+</span><span id="L-4453"><a href="#L-4453"><span class="linenos">4453</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-4454"><a href="#L-4454"><span class="linenos">4454</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="L-4455"><a href="#L-4455"><span class="linenos">4455</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-4456"><a href="#L-4456"><span class="linenos">4456</span></a> <span class="p">)</span>
+</span><span id="L-4457"><a href="#L-4457"><span class="linenos">4457</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-4458"><a href="#L-4458"><span class="linenos">4458</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-4459"><a href="#L-4459"><span class="linenos">4459</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="L-4460"><a href="#L-4460"><span class="linenos">4460</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-4461"><a href="#L-4461"><span class="linenos">4461</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="L-4462"><a href="#L-4462"><span class="linenos">4462</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-4463"><a href="#L-4463"><span class="linenos">4463</span></a> <span class="p">)</span>
+</span><span id="L-4464"><a href="#L-4464"><span class="linenos">4464</span></a> <span class="k">return</span> <span class="n">update_expr</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><span id="L-4467"><a href="#L-4467"><span class="linenos">4467</span></a><span class="sd"> Example:</span>
-</span><span id="L-4468"><a href="#L-4468"><span class="linenos">4468</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-4469"><a href="#L-4469"><span class="linenos">4469</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
-</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="sd"> Args:</span>
-</span><span id="L-4472"><a href="#L-4472"><span class="linenos">4472</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-4473"><a href="#L-4473"><span class="linenos">4473</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4474"><a href="#L-4474"><span class="linenos">4474</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4475"><a href="#L-4475"><span class="linenos">4475</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-4467"><a href="#L-4467"><span class="linenos">4467</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="L-4468"><a href="#L-4468"><span class="linenos">4468</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-4469"><a href="#L-4469"><span class="linenos">4469</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-4470"><a href="#L-4470"><span class="linenos">4470</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-4471"><a href="#L-4471"><span class="linenos">4471</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-4472"><a href="#L-4472"><span class="linenos">4472</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4473"><a href="#L-4473"><span class="linenos">4473</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="L-4474"><a href="#L-4474"><span class="linenos">4474</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4475"><a href="#L-4475"><span class="linenos">4475</span></a><span class="sd"> Builds a delete statement.</span>
</span><span id="L-4476"><a href="#L-4476"><span class="linenos">4476</span></a>
-</span><span id="L-4477"><a href="#L-4477"><span class="linenos">4477</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4478"><a href="#L-4478"><span class="linenos">4478</span></a><span class="sd"> Or: the new condition</span>
-</span><span id="L-4479"><a href="#L-4479"><span class="linenos">4479</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4480"><a href="#L-4480"><span class="linenos">4480</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4481"><a href="#L-4481"><span class="linenos">4481</span></a>
-</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="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
-</span><span id="L-4484"><a href="#L-4484"><span class="linenos">4484</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4485"><a href="#L-4485"><span class="linenos">4485</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
+</span><span id="L-4477"><a href="#L-4477"><span class="linenos">4477</span></a><span class="sd"> Example:</span>
+</span><span id="L-4478"><a href="#L-4478"><span class="linenos">4478</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-4479"><a href="#L-4479"><span class="linenos">4479</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</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="sd"> Args:</span>
+</span><span id="L-4482"><a href="#L-4482"><span class="linenos">4482</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="L-4483"><a href="#L-4483"><span class="linenos">4483</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="L-4484"><a href="#L-4484"><span class="linenos">4484</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-4485"><a href="#L-4485"><span class="linenos">4485</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-4486"><a href="#L-4486"><span class="linenos">4486</span></a>
-</span><span id="L-4487"><a href="#L-4487"><span class="linenos">4487</span></a><span class="sd"> Example:</span>
-</span><span id="L-4488"><a href="#L-4488"><span class="linenos">4488</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
-</span><span id="L-4489"><a href="#L-4489"><span class="linenos">4489</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
-</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="sd"> Args:</span>
-</span><span id="L-4492"><a href="#L-4492"><span class="linenos">4492</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-4493"><a href="#L-4493"><span class="linenos">4493</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4494"><a href="#L-4494"><span class="linenos">4494</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4495"><a href="#L-4495"><span class="linenos">4495</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-4487"><a href="#L-4487"><span class="linenos">4487</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4488"><a href="#L-4488"><span class="linenos">4488</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
+</span><span id="L-4489"><a href="#L-4489"><span class="linenos">4489</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4490"><a href="#L-4490"><span class="linenos">4490</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-4491"><a href="#L-4491"><span class="linenos">4491</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="L-4492"><a href="#L-4492"><span class="linenos">4492</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-4493"><a href="#L-4493"><span class="linenos">4493</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="L-4494"><a href="#L-4494"><span class="linenos">4494</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4495"><a href="#L-4495"><span class="linenos">4495</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
</span><span id="L-4496"><a href="#L-4496"><span class="linenos">4496</span></a>
-</span><span id="L-4497"><a href="#L-4497"><span class="linenos">4497</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4498"><a href="#L-4498"><span class="linenos">4498</span></a><span class="sd"> Not: the new condition</span>
-</span><span id="L-4499"><a href="#L-4499"><span class="linenos">4499</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4500"><a href="#L-4500"><span class="linenos">4500</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
-</span><span id="L-4501"><a href="#L-4501"><span class="linenos">4501</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-4502"><a href="#L-4502"><span class="linenos">4502</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-4503"><a href="#L-4503"><span class="linenos">4503</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4504"><a href="#L-4504"><span class="linenos">4504</span></a> <span class="p">)</span>
-</span><span id="L-4505"><a href="#L-4505"><span class="linenos">4505</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap_operator</span><span class="p">(</span><span class="n">this</span><span class="p">))</span>
-</span><span id="L-4506"><a href="#L-4506"><span class="linenos">4506</span></a>
-</span><span id="L-4507"><a href="#L-4507"><span class="linenos">4507</span></a>
-</span><span id="L-4508"><a href="#L-4508"><span class="linenos">4508</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="L-4509"><a href="#L-4509"><span class="linenos">4509</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="L-4510"><a href="#L-4510"><span class="linenos">4510</span></a>
+</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 class="k">def</span> <span class="nf">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-4499"><a href="#L-4499"><span class="linenos">4499</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4500"><a href="#L-4500"><span class="linenos">4500</span></a><span class="sd"> Initialize a logical condition expression.</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="sd"> Example:</span>
+</span><span id="L-4503"><a href="#L-4503"><span class="linenos">4503</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
+</span><span id="L-4504"><a href="#L-4504"><span class="linenos">4504</span></a><span class="sd"> &#39;x = 1&#39;</span>
+</span><span id="L-4505"><a href="#L-4505"><span class="linenos">4505</span></a>
+</span><span id="L-4506"><a href="#L-4506"><span class="linenos">4506</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
+</span><span id="L-4507"><a href="#L-4507"><span class="linenos">4507</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
+</span><span id="L-4508"><a href="#L-4508"><span class="linenos">4508</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
+</span><span id="L-4509"><a href="#L-4509"><span class="linenos">4509</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
+</span><span id="L-4510"><a href="#L-4510"><span class="linenos">4510</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
</span><span id="L-4511"><a href="#L-4511"><span class="linenos">4511</span></a>
-</span><span id="L-4512"><a href="#L-4512"><span class="linenos">4512</span></a><span class="n">SAFE_IDENTIFIER_RE</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;^[_a-zA-Z][\w]*$&quot;</span><span class="p">)</span>
-</span><span id="L-4513"><a href="#L-4513"><span class="linenos">4513</span></a>
-</span><span id="L-4514"><a href="#L-4514"><span class="linenos">4514</span></a>
-</span><span id="L-4515"><a href="#L-4515"><span class="linenos">4515</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-4516"><a href="#L-4516"><span class="linenos">4516</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-4517"><a href="#L-4517"><span class="linenos">4517</span></a> <span class="o">...</span>
-</span><span id="L-4518"><a href="#L-4518"><span class="linenos">4518</span></a>
+</span><span id="L-4512"><a href="#L-4512"><span class="linenos">4512</span></a><span class="sd"> Args:</span>
+</span><span id="L-4513"><a href="#L-4513"><span class="linenos">4513</span></a><span class="sd"> *expression (str | Expression): the SQL code string to parse.</span>
+</span><span id="L-4514"><a href="#L-4514"><span class="linenos">4514</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4515"><a href="#L-4515"><span class="linenos">4515</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
+</span><span id="L-4516"><a href="#L-4516"><span class="linenos">4516</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-4517"><a href="#L-4517"><span class="linenos">4517</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-4518"><a href="#L-4518"><span class="linenos">4518</span></a><span class="sd"> that the input expression is a SQL string).</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="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-4521"><a href="#L-4521"><span class="linenos">4521</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
-</span><span id="L-4522"><a href="#L-4522"><span class="linenos">4522</span></a> <span class="o">...</span>
-</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><span id="L-4525"><a href="#L-4525"><span class="linenos">4525</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="L-4526"><a href="#L-4526"><span class="linenos">4526</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
-</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="sd"> Args:</span>
-</span><span id="L-4529"><a href="#L-4529"><span class="linenos">4529</span></a><span class="sd"> name: The name to turn into an identifier.</span>
-</span><span id="L-4530"><a href="#L-4530"><span class="linenos">4530</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</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 class="sd"> Returns:</span>
-</span><span id="L-4533"><a href="#L-4533"><span class="linenos">4533</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="L-4534"><a href="#L-4534"><span class="linenos">4534</span></a><span class="sd"> &quot;&quot;&quot;</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 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-4537"><a href="#L-4537"><span class="linenos">4537</span></a> <span class="k">return</span> <span class="kc">None</span>
+</span><span id="L-4520"><a href="#L-4520"><span class="linenos">4520</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4521"><a href="#L-4521"><span class="linenos">4521</span></a><span class="sd"> Condition: the expression</span>
+</span><span id="L-4522"><a href="#L-4522"><span class="linenos">4522</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4523"><a href="#L-4523"><span class="linenos">4523</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span> <span class="c1"># type: ignore</span>
+</span><span id="L-4524"><a href="#L-4524"><span class="linenos">4524</span></a> <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="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
+</span><span id="L-4526"><a href="#L-4526"><span class="linenos">4526</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-4527"><a href="#L-4527"><span class="linenos">4527</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4528"><a href="#L-4528"><span class="linenos">4528</span></a> <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><span id="L-4531"><a href="#L-4531"><span class="linenos">4531</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
+</span><span id="L-4532"><a href="#L-4532"><span class="linenos">4532</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4533"><a href="#L-4533"><span class="linenos">4533</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
+</span><span id="L-4534"><a href="#L-4534"><span class="linenos">4534</span></a>
+</span><span id="L-4535"><a href="#L-4535"><span class="linenos">4535</span></a><span class="sd"> Example:</span>
+</span><span id="L-4536"><a href="#L-4536"><span class="linenos">4536</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-4537"><a href="#L-4537"><span class="linenos">4537</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
</span><span id="L-4538"><a href="#L-4538"><span class="linenos">4538</span></a>
-</span><span id="L-4539"><a href="#L-4539"><span class="linenos">4539</span></a> <span class="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-4540"><a href="#L-4540"><span class="linenos">4540</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">name</span>
-</span><span id="L-4541"><a href="#L-4541"><span class="linenos">4541</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-4542"><a href="#L-4542"><span class="linenos">4542</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
-</span><span id="L-4543"><a href="#L-4543"><span class="linenos">4543</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
-</span><span id="L-4544"><a href="#L-4544"><span class="linenos">4544</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-4545"><a href="#L-4545"><span class="linenos">4545</span></a> <span class="p">)</span>
-</span><span id="L-4546"><a href="#L-4546"><span class="linenos">4546</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-4547"><a href="#L-4547"><span class="linenos">4547</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-4548"><a href="#L-4548"><span class="linenos">4548</span></a> <span class="k">return</span> <span class="n">identifier</span>
+</span><span id="L-4539"><a href="#L-4539"><span class="linenos">4539</span></a><span class="sd"> Args:</span>
+</span><span id="L-4540"><a href="#L-4540"><span class="linenos">4540</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-4541"><a href="#L-4541"><span class="linenos">4541</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4542"><a href="#L-4542"><span class="linenos">4542</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-4543"><a href="#L-4543"><span class="linenos">4543</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-4544"><a href="#L-4544"><span class="linenos">4544</span></a>
+</span><span id="L-4545"><a href="#L-4545"><span class="linenos">4545</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4546"><a href="#L-4546"><span class="linenos">4546</span></a><span class="sd"> And: the new condition</span>
+</span><span id="L-4547"><a href="#L-4547"><span class="linenos">4547</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4548"><a href="#L-4548"><span class="linenos">4548</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4549"><a href="#L-4549"><span class="linenos">4549</span></a>
</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 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-4552"><a href="#L-4552"><span class="linenos">4552</span></a>
-</span><span id="L-4553"><a href="#L-4553"><span class="linenos">4553</span></a>
-</span><span id="L-4554"><a href="#L-4554"><span class="linenos">4554</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-4555"><a href="#L-4555"><span class="linenos">4555</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-4556"><a href="#L-4556"><span class="linenos">4556</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-4557"><a href="#L-4557"><span class="linenos">4557</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-4558"><a href="#L-4558"><span class="linenos">4558</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-4559"><a href="#L-4559"><span class="linenos">4559</span></a>
-</span><span id="L-4560"><a href="#L-4560"><span class="linenos">4560</span></a> <span class="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-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="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-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="k">if</span> <span class="ow">not</span> <span class="n">interval_parts</span><span class="p">:</span>
-</span><span id="L-4565"><a href="#L-4565"><span class="linenos">4565</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Invalid interval string.&quot;</span><span class="p">)</span>
-</span><span id="L-4566"><a href="#L-4566"><span class="linenos">4566</span></a>
-</span><span id="L-4567"><a href="#L-4567"><span class="linenos">4567</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="L-4568"><a href="#L-4568"><span class="linenos">4568</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-4569"><a href="#L-4569"><span class="linenos">4569</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span>
-</span><span id="L-4570"><a href="#L-4570"><span class="linenos">4570</span></a> <span class="p">)</span>
-</span><span id="L-4571"><a href="#L-4571"><span class="linenos">4571</span></a>
-</span><span id="L-4572"><a href="#L-4572"><span class="linenos">4572</span></a>
-</span><span id="L-4573"><a href="#L-4573"><span class="linenos">4573</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-4574"><a href="#L-4574"><span class="linenos">4574</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="L-4575"><a href="#L-4575"><span class="linenos">4575</span></a> <span class="o">...</span>
-</span><span id="L-4576"><a href="#L-4576"><span class="linenos">4576</span></a>
-</span><span id="L-4577"><a href="#L-4577"><span class="linenos">4577</span></a>
-</span><span id="L-4578"><a href="#L-4578"><span class="linenos">4578</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-4579"><a href="#L-4579"><span class="linenos">4579</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-4580"><a href="#L-4580"><span class="linenos">4580</span></a> <span class="o">...</span>
-</span><span id="L-4581"><a href="#L-4581"><span class="linenos">4581</span></a>
-</span><span id="L-4582"><a href="#L-4582"><span class="linenos">4582</span></a>
-</span><span id="L-4583"><a href="#L-4583"><span class="linenos">4583</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
-</span><span id="L-4584"><a href="#L-4584"><span class="linenos">4584</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4585"><a href="#L-4585"><span class="linenos">4585</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-4586"><a href="#L-4586"><span class="linenos">4586</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
-</span><span id="L-4587"><a href="#L-4587"><span class="linenos">4587</span></a>
-</span><span id="L-4588"><a href="#L-4588"><span class="linenos">4588</span></a><span class="sd"> Args:</span>
-</span><span id="L-4589"><a href="#L-4589"><span class="linenos">4589</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
-</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="sd"> Returns:</span>
-</span><span id="L-4592"><a href="#L-4592"><span class="linenos">4592</span></a><span class="sd"> A table expression.</span>
-</span><span id="L-4593"><a href="#L-4593"><span class="linenos">4593</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4594"><a href="#L-4594"><span class="linenos">4594</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
-</span><span id="L-4595"><a href="#L-4595"><span class="linenos">4595</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="L-4596"><a href="#L-4596"><span class="linenos">4596</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="L-4597"><a href="#L-4597"><span class="linenos">4597</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for a table: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="L-4551"><a href="#L-4551"><span class="linenos">4551</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
+</span><span id="L-4552"><a href="#L-4552"><span class="linenos">4552</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4553"><a href="#L-4553"><span class="linenos">4553</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</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 class="sd"> Example:</span>
+</span><span id="L-4556"><a href="#L-4556"><span class="linenos">4556</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-4557"><a href="#L-4557"><span class="linenos">4557</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
+</span><span id="L-4558"><a href="#L-4558"><span class="linenos">4558</span></a>
+</span><span id="L-4559"><a href="#L-4559"><span class="linenos">4559</span></a><span class="sd"> Args:</span>
+</span><span id="L-4560"><a href="#L-4560"><span class="linenos">4560</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-4561"><a href="#L-4561"><span class="linenos">4561</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4562"><a href="#L-4562"><span class="linenos">4562</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-4563"><a href="#L-4563"><span class="linenos">4563</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-4564"><a href="#L-4564"><span class="linenos">4564</span></a>
+</span><span id="L-4565"><a href="#L-4565"><span class="linenos">4565</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4566"><a href="#L-4566"><span class="linenos">4566</span></a><span class="sd"> Or: the new condition</span>
+</span><span id="L-4567"><a href="#L-4567"><span class="linenos">4567</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4568"><a href="#L-4568"><span class="linenos">4568</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4569"><a href="#L-4569"><span class="linenos">4569</span></a>
+</span><span id="L-4570"><a href="#L-4570"><span class="linenos">4570</span></a>
+</span><span id="L-4571"><a href="#L-4571"><span class="linenos">4571</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
+</span><span id="L-4572"><a href="#L-4572"><span class="linenos">4572</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4573"><a href="#L-4573"><span class="linenos">4573</span></a><span class="sd"> Wrap a condition with a NOT operator.</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="sd"> Example:</span>
+</span><span id="L-4576"><a href="#L-4576"><span class="linenos">4576</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
+</span><span id="L-4577"><a href="#L-4577"><span class="linenos">4577</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
+</span><span id="L-4578"><a href="#L-4578"><span class="linenos">4578</span></a>
+</span><span id="L-4579"><a href="#L-4579"><span class="linenos">4579</span></a><span class="sd"> Args:</span>
+</span><span id="L-4580"><a href="#L-4580"><span class="linenos">4580</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-4581"><a href="#L-4581"><span class="linenos">4581</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4582"><a href="#L-4582"><span class="linenos">4582</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-4583"><a href="#L-4583"><span class="linenos">4583</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</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="sd"> Returns:</span>
+</span><span id="L-4586"><a href="#L-4586"><span class="linenos">4586</span></a><span class="sd"> Not: the new condition</span>
+</span><span id="L-4587"><a href="#L-4587"><span class="linenos">4587</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4588"><a href="#L-4588"><span class="linenos">4588</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
+</span><span id="L-4589"><a href="#L-4589"><span class="linenos">4589</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-4590"><a href="#L-4590"><span class="linenos">4590</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-4591"><a href="#L-4591"><span class="linenos">4591</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4592"><a href="#L-4592"><span class="linenos">4592</span></a> <span class="p">)</span>
+</span><span id="L-4593"><a href="#L-4593"><span class="linenos">4593</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap_operator</span><span class="p">(</span><span class="n">this</span><span class="p">))</span>
+</span><span id="L-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><span id="L-4596"><a href="#L-4596"><span class="linenos">4596</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="L-4597"><a href="#L-4597"><span class="linenos">4597</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
</span><span id="L-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 class="n">catalog</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">table_name</span> <span class="o">=</span> <span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">&quot;.&quot;</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
-</span><span id="L-4600"><a href="#L-4600"><span class="linenos">4600</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-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="n">SAFE_IDENTIFIER_RE</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;^[_a-zA-Z][\w]*$&quot;</span><span class="p">)</span>
</span><span id="L-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><span id="L-4603"><a href="#L-4603"><span class="linenos">4603</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="L-4604"><a href="#L-4604"><span class="linenos">4604</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4605"><a href="#L-4605"><span class="linenos">4605</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
+</span><span id="L-4603"><a href="#L-4603"><span class="linenos">4603</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-4604"><a href="#L-4604"><span class="linenos">4604</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-4605"><a href="#L-4605"><span class="linenos">4605</span></a> <span class="o">...</span>
</span><span id="L-4606"><a href="#L-4606"><span class="linenos">4606</span></a>
-</span><span id="L-4607"><a href="#L-4607"><span class="linenos">4607</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
-</span><span id="L-4608"><a href="#L-4608"><span class="linenos">4608</span></a>
-</span><span id="L-4609"><a href="#L-4609"><span class="linenos">4609</span></a><span class="sd"> Args:</span>
-</span><span id="L-4610"><a href="#L-4610"><span class="linenos">4610</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
-</span><span id="L-4611"><a href="#L-4611"><span class="linenos">4611</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4612"><a href="#L-4612"><span class="linenos">4612</span></a><span class="sd"> Table: A column expression</span>
-</span><span id="L-4613"><a href="#L-4613"><span class="linenos">4613</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4614"><a href="#L-4614"><span class="linenos">4614</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
-</span><span id="L-4615"><a href="#L-4615"><span class="linenos">4615</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="L-4616"><a href="#L-4616"><span class="linenos">4616</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="L-4617"><a href="#L-4617"><span class="linenos">4617</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for column: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="L-4618"><a href="#L-4618"><span class="linenos">4618</span></a> <span class="k">return</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">sql_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="L-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 class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-4609"><a href="#L-4609"><span class="linenos">4609</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
+</span><span id="L-4610"><a href="#L-4610"><span class="linenos">4610</span></a> <span class="o">...</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="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="L-4614"><a href="#L-4614"><span class="linenos">4614</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
+</span><span id="L-4615"><a href="#L-4615"><span class="linenos">4615</span></a>
+</span><span id="L-4616"><a href="#L-4616"><span class="linenos">4616</span></a><span class="sd"> Args:</span>
+</span><span id="L-4617"><a href="#L-4617"><span class="linenos">4617</span></a><span class="sd"> name: The name to turn into an identifier.</span>
+</span><span id="L-4618"><a href="#L-4618"><span class="linenos">4618</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
</span><span id="L-4619"><a href="#L-4619"><span class="linenos">4619</span></a>
-</span><span id="L-4620"><a href="#L-4620"><span class="linenos">4620</span></a>
-</span><span id="L-4621"><a href="#L-4621"><span class="linenos">4621</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
-</span><span id="L-4622"><a href="#L-4622"><span class="linenos">4622</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-4623"><a href="#L-4623"><span class="linenos">4623</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
-</span><span id="L-4624"><a href="#L-4624"><span class="linenos">4624</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-4625"><a href="#L-4625"><span class="linenos">4625</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-4626"><a href="#L-4626"><span class="linenos">4626</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-4627"><a href="#L-4627"><span class="linenos">4627</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4628"><a href="#L-4628"><span class="linenos">4628</span></a><span class="p">):</span>
-</span><span id="L-4629"><a href="#L-4629"><span class="linenos">4629</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
-</span><span id="L-4630"><a href="#L-4630"><span class="linenos">4630</span></a>
-</span><span id="L-4631"><a href="#L-4631"><span class="linenos">4631</span></a><span class="sd"> Example:</span>
-</span><span id="L-4632"><a href="#L-4632"><span class="linenos">4632</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
-</span><span id="L-4633"><a href="#L-4633"><span class="linenos">4633</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
-</span><span id="L-4634"><a href="#L-4634"><span class="linenos">4634</span></a>
-</span><span id="L-4635"><a href="#L-4635"><span class="linenos">4635</span></a><span class="sd"> &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-4636"><a href="#L-4636"><span class="linenos">4636</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
+</span><span id="L-4620"><a href="#L-4620"><span class="linenos">4620</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4621"><a href="#L-4621"><span class="linenos">4621</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="L-4622"><a href="#L-4622"><span class="linenos">4622</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4623"><a href="#L-4623"><span class="linenos">4623</span></a>
+</span><span id="L-4624"><a href="#L-4624"><span class="linenos">4624</span></a> <span class="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-4625"><a href="#L-4625"><span class="linenos">4625</span></a> <span class="k">return</span> <span class="kc">None</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">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-4628"><a href="#L-4628"><span class="linenos">4628</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">name</span>
+</span><span id="L-4629"><a href="#L-4629"><span class="linenos">4629</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-4630"><a href="#L-4630"><span class="linenos">4630</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
+</span><span id="L-4631"><a href="#L-4631"><span class="linenos">4631</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
+</span><span id="L-4632"><a href="#L-4632"><span class="linenos">4632</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-4633"><a href="#L-4633"><span class="linenos">4633</span></a> <span class="p">)</span>
+</span><span id="L-4634"><a href="#L-4634"><span class="linenos">4634</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-4635"><a href="#L-4635"><span class="linenos">4635</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-4636"><a href="#L-4636"><span class="linenos">4636</span></a> <span class="k">return</span> <span class="n">identifier</span>
</span><span id="L-4637"><a href="#L-4637"><span class="linenos">4637</span></a>
-</span><span id="L-4638"><a href="#L-4638"><span class="linenos">4638</span></a><span class="sd"> Args:</span>
-</span><span id="L-4639"><a href="#L-4639"><span class="linenos">4639</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="L-4640"><a href="#L-4640"><span class="linenos">4640</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4641"><a href="#L-4641"><span class="linenos">4641</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
-</span><span id="L-4642"><a href="#L-4642"><span class="linenos">4642</span></a><span class="sd"> special characters it is quoted.</span>
-</span><span id="L-4643"><a href="#L-4643"><span class="linenos">4643</span></a><span class="sd"> table: Whether or not to create a table alias, can also be a list of columns.</span>
-</span><span id="L-4644"><a href="#L-4644"><span class="linenos">4644</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
-</span><span id="L-4645"><a href="#L-4645"><span class="linenos">4645</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-4646"><a href="#L-4646"><span class="linenos">4646</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-4638"><a href="#L-4638"><span class="linenos">4638</span></a>
+</span><span id="L-4639"><a href="#L-4639"><span class="linenos">4639</span></a><span class="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-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><span id="L-4642"><a href="#L-4642"><span class="linenos">4642</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-4643"><a href="#L-4643"><span class="linenos">4643</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-4644"><a href="#L-4644"><span class="linenos">4644</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">interval</span><span class="p">,</span> <span class="n">Literal</span><span class="p">):</span>
+</span><span id="L-4645"><a href="#L-4645"><span class="linenos">4645</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-4646"><a href="#L-4646"><span class="linenos">4646</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-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="sd"> Returns:</span>
-</span><span id="L-4649"><a href="#L-4649"><span class="linenos">4649</span></a><span class="sd"> Alias: the aliased expression</span>
-</span><span id="L-4650"><a href="#L-4650"><span class="linenos">4650</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4651"><a href="#L-4651"><span class="linenos">4651</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4652"><a href="#L-4652"><span class="linenos">4652</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-4653"><a href="#L-4653"><span class="linenos">4653</span></a>
-</span><span id="L-4654"><a href="#L-4654"><span class="linenos">4654</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-4655"><a href="#L-4655"><span class="linenos">4655</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-4656"><a href="#L-4656"><span class="linenos">4656</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-4657"><a href="#L-4657"><span class="linenos">4657</span></a>
-</span><span id="L-4658"><a href="#L-4658"><span class="linenos">4658</span></a> <span class="k">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-4659"><a href="#L-4659"><span class="linenos">4659</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-4660"><a href="#L-4660"><span class="linenos">4660</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-4661"><a href="#L-4661"><span class="linenos">4661</span></a>
-</span><span id="L-4662"><a href="#L-4662"><span class="linenos">4662</span></a> <span class="k">return</span> <span class="n">exp</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 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-4665"><a href="#L-4665"><span class="linenos">4665</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-4666"><a href="#L-4666"><span class="linenos">4666</span></a> <span class="c1"># for the complete Window expression.</span>
-</span><span id="L-4667"><a href="#L-4667"><span class="linenos">4667</span></a> <span class="c1">#</span>
-</span><span id="L-4668"><a href="#L-4668"><span class="linenos">4668</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</span><span id="L-4648"><a href="#L-4648"><span class="linenos">4648</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-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="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-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 class="k">if</span> <span class="ow">not</span> <span class="n">interval_parts</span><span class="p">:</span>
+</span><span id="L-4653"><a href="#L-4653"><span class="linenos">4653</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-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">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="L-4656"><a href="#L-4656"><span class="linenos">4656</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-4657"><a href="#L-4657"><span class="linenos">4657</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span>
+</span><span id="L-4658"><a href="#L-4658"><span class="linenos">4658</span></a> <span class="p">)</span>
+</span><span id="L-4659"><a href="#L-4659"><span class="linenos">4659</span></a>
+</span><span id="L-4660"><a href="#L-4660"><span class="linenos">4660</span></a>
+</span><span id="L-4661"><a href="#L-4661"><span class="linenos">4661</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-4662"><a href="#L-4662"><span class="linenos">4662</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="L-4663"><a href="#L-4663"><span class="linenos">4663</span></a> <span class="o">...</span>
+</span><span id="L-4664"><a href="#L-4664"><span class="linenos">4664</span></a>
+</span><span id="L-4665"><a href="#L-4665"><span class="linenos">4665</span></a>
+</span><span id="L-4666"><a href="#L-4666"><span class="linenos">4666</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-4667"><a href="#L-4667"><span class="linenos">4667</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-4668"><a href="#L-4668"><span class="linenos">4668</span></a> <span class="o">...</span>
</span><span id="L-4669"><a href="#L-4669"><span class="linenos">4669</span></a>
-</span><span id="L-4670"><a href="#L-4670"><span class="linenos">4670</span></a> <span class="k">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-4671"><a href="#L-4671"><span class="linenos">4671</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="L-4672"><a href="#L-4672"><span class="linenos">4672</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-4673"><a href="#L-4673"><span class="linenos">4673</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="L-4674"><a href="#L-4674"><span class="linenos">4674</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-4670"><a href="#L-4670"><span class="linenos">4670</span></a>
+</span><span id="L-4671"><a href="#L-4671"><span class="linenos">4671</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
+</span><span id="L-4672"><a href="#L-4672"><span class="linenos">4672</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4673"><a href="#L-4673"><span class="linenos">4673</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-4674"><a href="#L-4674"><span class="linenos">4674</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
</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><span id="L-4677"><a href="#L-4677"><span class="linenos">4677</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="L-4678"><a href="#L-4678"><span class="linenos">4678</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4679"><a href="#L-4679"><span class="linenos">4679</span></a><span class="sd"> Build a subquery expression.</span>
-</span><span id="L-4680"><a href="#L-4680"><span class="linenos">4680</span></a>
-</span><span id="L-4681"><a href="#L-4681"><span class="linenos">4681</span></a><span class="sd"> Example:</span>
-</span><span id="L-4682"><a href="#L-4682"><span class="linenos">4682</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-4683"><a href="#L-4683"><span class="linenos">4683</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</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 class="sd"> Args:</span>
-</span><span id="L-4686"><a href="#L-4686"><span class="linenos">4686</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-4687"><a href="#L-4687"><span class="linenos">4687</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4688"><a href="#L-4688"><span class="linenos">4688</span></a><span class="sd"> alias (str | Expression): the alias name to use.</span>
-</span><span id="L-4689"><a href="#L-4689"><span class="linenos">4689</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4690"><a href="#L-4690"><span class="linenos">4690</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-4691"><a href="#L-4691"><span class="linenos">4691</span></a>
-</span><span id="L-4692"><a href="#L-4692"><span class="linenos">4692</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4693"><a href="#L-4693"><span class="linenos">4693</span></a><span class="sd"> Select: a new select with the subquery expression included</span>
-</span><span id="L-4694"><a href="#L-4694"><span class="linenos">4694</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4695"><a href="#L-4695"><span class="linenos">4695</span></a>
-</span><span id="L-4696"><a href="#L-4696"><span class="linenos">4696</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span>
-</span><span id="L-4697"><a href="#L-4697"><span class="linenos">4697</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-4698"><a href="#L-4698"><span class="linenos">4698</span></a>
-</span><span id="L-4699"><a href="#L-4699"><span class="linenos">4699</span></a>
-</span><span id="L-4700"><a href="#L-4700"><span class="linenos">4700</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="L-4701"><a href="#L-4701"><span class="linenos">4701</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-4702"><a href="#L-4702"><span class="linenos">4702</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-4703"><a href="#L-4703"><span class="linenos">4703</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-4704"><a href="#L-4704"><span class="linenos">4704</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-4705"><a href="#L-4705"><span class="linenos">4705</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-4706"><a href="#L-4706"><span class="linenos">4706</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="L-4707"><a href="#L-4707"><span class="linenos">4707</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4708"><a href="#L-4708"><span class="linenos">4708</span></a><span class="sd"> Build a Column.</span>
-</span><span id="L-4709"><a href="#L-4709"><span class="linenos">4709</span></a>
-</span><span id="L-4710"><a href="#L-4710"><span class="linenos">4710</span></a><span class="sd"> Args:</span>
-</span><span id="L-4711"><a href="#L-4711"><span class="linenos">4711</span></a><span class="sd"> col: column name</span>
-</span><span id="L-4712"><a href="#L-4712"><span class="linenos">4712</span></a><span class="sd"> table: table name</span>
-</span><span id="L-4713"><a href="#L-4713"><span class="linenos">4713</span></a><span class="sd"> db: db name</span>
-</span><span id="L-4714"><a href="#L-4714"><span class="linenos">4714</span></a><span class="sd"> catalog: catalog name</span>
-</span><span id="L-4715"><a href="#L-4715"><span class="linenos">4715</span></a><span class="sd"> quoted: whether or not to force quote each part</span>
-</span><span id="L-4716"><a href="#L-4716"><span class="linenos">4716</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4717"><a href="#L-4717"><span class="linenos">4717</span></a><span class="sd"> Column: column instance</span>
-</span><span id="L-4718"><a href="#L-4718"><span class="linenos">4718</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4719"><a href="#L-4719"><span class="linenos">4719</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
-</span><span id="L-4720"><a href="#L-4720"><span class="linenos">4720</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-4721"><a href="#L-4721"><span class="linenos">4721</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-4722"><a href="#L-4722"><span class="linenos">4722</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-4723"><a href="#L-4723"><span class="linenos">4723</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-4724"><a href="#L-4724"><span class="linenos">4724</span></a> <span class="p">)</span>
+</span><span id="L-4676"><a href="#L-4676"><span class="linenos">4676</span></a><span class="sd"> Args:</span>
+</span><span id="L-4677"><a href="#L-4677"><span class="linenos">4677</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="L-4678"><a href="#L-4678"><span class="linenos">4678</span></a>
+</span><span id="L-4679"><a href="#L-4679"><span class="linenos">4679</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4680"><a href="#L-4680"><span class="linenos">4680</span></a><span class="sd"> A table expression.</span>
+</span><span id="L-4681"><a href="#L-4681"><span class="linenos">4681</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4682"><a href="#L-4682"><span class="linenos">4682</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
+</span><span id="L-4683"><a href="#L-4683"><span class="linenos">4683</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="L-4684"><a href="#L-4684"><span class="linenos">4684</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="L-4685"><a href="#L-4685"><span class="linenos">4685</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for a table: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="L-4686"><a href="#L-4686"><span class="linenos">4686</span></a>
+</span><span id="L-4687"><a href="#L-4687"><span class="linenos">4687</span></a> <span class="n">catalog</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">table_name</span> <span class="o">=</span> <span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">&quot;.&quot;</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
+</span><span id="L-4688"><a href="#L-4688"><span class="linenos">4688</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-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><span id="L-4691"><a href="#L-4691"><span class="linenos">4691</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="L-4692"><a href="#L-4692"><span class="linenos">4692</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4693"><a href="#L-4693"><span class="linenos">4693</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
+</span><span id="L-4694"><a href="#L-4694"><span class="linenos">4694</span></a>
+</span><span id="L-4695"><a href="#L-4695"><span class="linenos">4695</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
+</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 class="sd"> Args:</span>
+</span><span id="L-4698"><a href="#L-4698"><span class="linenos">4698</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
+</span><span id="L-4699"><a href="#L-4699"><span class="linenos">4699</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4700"><a href="#L-4700"><span class="linenos">4700</span></a><span class="sd"> Table: A column expression</span>
+</span><span id="L-4701"><a href="#L-4701"><span class="linenos">4701</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4702"><a href="#L-4702"><span class="linenos">4702</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
+</span><span id="L-4703"><a href="#L-4703"><span class="linenos">4703</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="L-4704"><a href="#L-4704"><span class="linenos">4704</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="L-4705"><a href="#L-4705"><span class="linenos">4705</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for column: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="L-4706"><a href="#L-4706"><span class="linenos">4706</span></a> <span class="k">return</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">sql_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="L-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="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
+</span><span id="L-4710"><a href="#L-4710"><span class="linenos">4710</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-4711"><a href="#L-4711"><span class="linenos">4711</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
+</span><span id="L-4712"><a href="#L-4712"><span class="linenos">4712</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-4713"><a href="#L-4713"><span class="linenos">4713</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-4714"><a href="#L-4714"><span class="linenos">4714</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-4715"><a href="#L-4715"><span class="linenos">4715</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4716"><a href="#L-4716"><span class="linenos">4716</span></a><span class="p">):</span>
+</span><span id="L-4717"><a href="#L-4717"><span class="linenos">4717</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
+</span><span id="L-4718"><a href="#L-4718"><span class="linenos">4718</span></a>
+</span><span id="L-4719"><a href="#L-4719"><span class="linenos">4719</span></a><span class="sd"> Example:</span>
+</span><span id="L-4720"><a href="#L-4720"><span class="linenos">4720</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
+</span><span id="L-4721"><a href="#L-4721"><span class="linenos">4721</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="L-4722"><a href="#L-4722"><span class="linenos">4722</span></a>
+</span><span id="L-4723"><a href="#L-4723"><span class="linenos">4723</span></a><span 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-4724"><a href="#L-4724"><span class="linenos">4724</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
</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><span id="L-4727"><a href="#L-4727"><span class="linenos">4727</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
-</span><span id="L-4728"><a href="#L-4728"><span class="linenos">4728</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
-</span><span id="L-4729"><a href="#L-4729"><span class="linenos">4729</span></a>
-</span><span id="L-4730"><a href="#L-4730"><span class="linenos">4730</span></a><span class="sd"> Example:</span>
-</span><span id="L-4731"><a href="#L-4731"><span class="linenos">4731</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
-</span><span id="L-4732"><a href="#L-4732"><span class="linenos">4732</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</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 class="sd"> Args:</span>
-</span><span id="L-4735"><a href="#L-4735"><span class="linenos">4735</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="L-4736"><a href="#L-4736"><span class="linenos">4736</span></a><span class="sd"> to: The datatype to cast to.</span>
-</span><span id="L-4737"><a href="#L-4737"><span class="linenos">4737</span></a>
-</span><span id="L-4738"><a href="#L-4738"><span class="linenos">4738</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4739"><a href="#L-4739"><span class="linenos">4739</span></a><span class="sd"> A cast node.</span>
-</span><span id="L-4740"><a href="#L-4740"><span class="linenos">4740</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4741"><a href="#L-4741"><span class="linenos">4741</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4742"><a href="#L-4742"><span class="linenos">4742</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="L-4743"><a href="#L-4743"><span class="linenos">4743</span></a>
+</span><span id="L-4726"><a href="#L-4726"><span class="linenos">4726</span></a><span class="sd"> Args:</span>
+</span><span id="L-4727"><a href="#L-4727"><span class="linenos">4727</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="L-4728"><a href="#L-4728"><span class="linenos">4728</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4729"><a href="#L-4729"><span class="linenos">4729</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
+</span><span id="L-4730"><a href="#L-4730"><span class="linenos">4730</span></a><span class="sd"> special characters it is quoted.</span>
+</span><span id="L-4731"><a href="#L-4731"><span class="linenos">4731</span></a><span class="sd"> table: Whether or not to create a table alias, can also be a list of columns.</span>
+</span><span id="L-4732"><a href="#L-4732"><span class="linenos">4732</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
+</span><span id="L-4733"><a href="#L-4733"><span class="linenos">4733</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-4734"><a href="#L-4734"><span class="linenos">4734</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-4735"><a href="#L-4735"><span class="linenos">4735</span></a>
+</span><span id="L-4736"><a href="#L-4736"><span class="linenos">4736</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4737"><a href="#L-4737"><span class="linenos">4737</span></a><span class="sd"> Alias: the aliased expression</span>
+</span><span id="L-4738"><a href="#L-4738"><span class="linenos">4738</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4739"><a href="#L-4739"><span class="linenos">4739</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4740"><a href="#L-4740"><span class="linenos">4740</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-4741"><a href="#L-4741"><span class="linenos">4741</span></a>
+</span><span id="L-4742"><a href="#L-4742"><span class="linenos">4742</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-4743"><a href="#L-4743"><span class="linenos">4743</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-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">def</span> <span class="nf">table_</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="L-4746"><a href="#L-4746"><span class="linenos">4746</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
+</span><span id="L-4745"><a href="#L-4745"><span class="linenos">4745</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">)</span> <span class="k">else</span> <span class="n">exp</span>
+</span><span id="L-4746"><a href="#L-4746"><span class="linenos">4746</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-4747"><a href="#L-4747"><span class="linenos">4747</span></a>
-</span><span id="L-4748"><a href="#L-4748"><span class="linenos">4748</span></a><span class="sd"> Args:</span>
-</span><span id="L-4749"><a href="#L-4749"><span class="linenos">4749</span></a><span class="sd"> table (str | Expression): column name</span>
-</span><span id="L-4750"><a href="#L-4750"><span class="linenos">4750</span></a><span class="sd"> db (str | Expression): db name</span>
-</span><span id="L-4751"><a href="#L-4751"><span class="linenos">4751</span></a><span class="sd"> catalog (str | Expression): catalog name</span>
-</span><span id="L-4752"><a href="#L-4752"><span class="linenos">4752</span></a>
-</span><span id="L-4753"><a href="#L-4753"><span class="linenos">4753</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4754"><a href="#L-4754"><span class="linenos">4754</span></a><span class="sd"> Table: table instance</span>
-</span><span id="L-4755"><a href="#L-4755"><span class="linenos">4755</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4756"><a href="#L-4756"><span class="linenos">4756</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
-</span><span id="L-4757"><a href="#L-4757"><span class="linenos">4757</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-4758"><a href="#L-4758"><span class="linenos">4758</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-4759"><a href="#L-4759"><span class="linenos">4759</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-4760"><a href="#L-4760"><span class="linenos">4760</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-4761"><a href="#L-4761"><span class="linenos">4761</span></a> <span class="p">)</span>
-</span><span id="L-4762"><a href="#L-4762"><span class="linenos">4762</span></a>
-</span><span id="L-4763"><a href="#L-4763"><span class="linenos">4763</span></a>
-</span><span id="L-4764"><a href="#L-4764"><span class="linenos">4764</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
-</span><span id="L-4765"><a href="#L-4765"><span class="linenos">4765</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-4766"><a href="#L-4766"><span class="linenos">4766</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-4767"><a href="#L-4767"><span class="linenos">4767</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-4768"><a href="#L-4768"><span class="linenos">4768</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
-</span><span id="L-4769"><a href="#L-4769"><span class="linenos">4769</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
+</span><span id="L-4748"><a href="#L-4748"><span class="linenos">4748</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-4749"><a href="#L-4749"><span class="linenos">4749</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-4750"><a href="#L-4750"><span class="linenos">4750</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-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">return</span> <span class="n">exp</span>
+</span><span id="L-4753"><a href="#L-4753"><span class="linenos">4753</span></a>
+</span><span id="L-4754"><a href="#L-4754"><span class="linenos">4754</span></a> <span 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-4755"><a href="#L-4755"><span class="linenos">4755</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-4756"><a href="#L-4756"><span class="linenos">4756</span></a> <span class="c1"># for the complete Window expression.</span>
+</span><span id="L-4757"><a href="#L-4757"><span class="linenos">4757</span></a> <span class="c1">#</span>
+</span><span id="L-4758"><a href="#L-4758"><span class="linenos">4758</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</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">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-4761"><a href="#L-4761"><span class="linenos">4761</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="L-4762"><a href="#L-4762"><span class="linenos">4762</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-4763"><a href="#L-4763"><span class="linenos">4763</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="L-4764"><a href="#L-4764"><span class="linenos">4764</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-4765"><a href="#L-4765"><span class="linenos">4765</span></a>
+</span><span id="L-4766"><a href="#L-4766"><span class="linenos">4766</span></a>
+</span><span id="L-4767"><a href="#L-4767"><span class="linenos">4767</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
+</span><span id="L-4768"><a href="#L-4768"><span class="linenos">4768</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4769"><a href="#L-4769"><span class="linenos">4769</span></a><span class="sd"> Build a subquery expression.</span>
</span><span id="L-4770"><a href="#L-4770"><span class="linenos">4770</span></a>
</span><span id="L-4771"><a href="#L-4771"><span class="linenos">4771</span></a><span class="sd"> Example:</span>
-</span><span id="L-4772"><a href="#L-4772"><span class="linenos">4772</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
-</span><span id="L-4773"><a href="#L-4773"><span class="linenos">4773</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
+</span><span id="L-4772"><a href="#L-4772"><span class="linenos">4772</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-4773"><a href="#L-4773"><span class="linenos">4773</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</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 class="sd"> Args:</span>
-</span><span id="L-4776"><a href="#L-4776"><span class="linenos">4776</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
-</span><span id="L-4777"><a href="#L-4777"><span class="linenos">4777</span></a><span class="sd"> alias: optional alias</span>
-</span><span id="L-4778"><a href="#L-4778"><span class="linenos">4778</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-4779"><a href="#L-4779"><span class="linenos">4779</span></a><span class="sd"> If either are provided then an alias is also required.</span>
-</span><span id="L-4780"><a href="#L-4780"><span class="linenos">4780</span></a><span class="sd"> If a dictionary is provided then the first column of the values will be casted to the expected type</span>
-</span><span id="L-4781"><a href="#L-4781"><span class="linenos">4781</span></a><span class="sd"> in order to help with type inference.</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 class="sd"> Returns:</span>
-</span><span id="L-4784"><a href="#L-4784"><span class="linenos">4784</span></a><span class="sd"> Values: the Values expression object</span>
-</span><span id="L-4785"><a href="#L-4785"><span class="linenos">4785</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4786"><a href="#L-4786"><span class="linenos">4786</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-4787"><a href="#L-4787"><span class="linenos">4787</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-4788"><a href="#L-4788"><span class="linenos">4788</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="p">(</span>
-</span><span id="L-4789"><a href="#L-4789"><span class="linenos">4789</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-4790"><a href="#L-4790"><span class="linenos">4790</span></a> <span class="k">if</span> <span class="n">columns</span>
-</span><span id="L-4791"><a href="#L-4791"><span class="linenos">4791</span></a> <span class="k">else</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="L-4792"><a href="#L-4792"><span class="linenos">4792</span></a> <span class="p">)</span>
-</span><span id="L-4793"><a href="#L-4793"><span class="linenos">4793</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-4794"><a href="#L-4794"><span class="linenos">4794</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">columns</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
-</span><span id="L-4795"><a href="#L-4795"><span class="linenos">4795</span></a> <span class="n">types</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">())</span>
-</span><span id="L-4796"><a href="#L-4796"><span class="linenos">4796</span></a> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="L-4797"><a href="#L-4797"><span class="linenos">4797</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="L-4798"><a href="#L-4798"><span class="linenos">4798</span></a> <span class="p">[</span><span class="n">cast</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">types</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span><span class="p">)],</span>
-</span><span id="L-4799"><a href="#L-4799"><span class="linenos">4799</span></a> <span class="p">)</span>
-</span><span id="L-4800"><a href="#L-4800"><span class="linenos">4800</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
-</span><span id="L-4801"><a href="#L-4801"><span class="linenos">4801</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-4802"><a href="#L-4802"><span class="linenos">4802</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span>
-</span><span id="L-4803"><a href="#L-4803"><span class="linenos">4803</span></a> <span class="p">)</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">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-4807"><a href="#L-4807"><span class="linenos">4807</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</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 class="sd"> Example:</span>
-</span><span id="L-4810"><a href="#L-4810"><span class="linenos">4810</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
-</span><span id="L-4811"><a href="#L-4811"><span class="linenos">4811</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="L-4812"><a href="#L-4812"><span class="linenos">4812</span></a>
-</span><span id="L-4813"><a href="#L-4813"><span class="linenos">4813</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
-</span><span id="L-4814"><a href="#L-4814"><span class="linenos">4814</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="L-4776"><a href="#L-4776"><span class="linenos">4776</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-4777"><a href="#L-4777"><span class="linenos">4777</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4778"><a href="#L-4778"><span class="linenos">4778</span></a><span class="sd"> alias (str | Expression): the alias name to use.</span>
+</span><span id="L-4779"><a href="#L-4779"><span class="linenos">4779</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-4780"><a href="#L-4780"><span class="linenos">4780</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</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="sd"> Returns:</span>
+</span><span id="L-4783"><a href="#L-4783"><span class="linenos">4783</span></a><span class="sd"> Select: a new select with the subquery expression included</span>
+</span><span id="L-4784"><a href="#L-4784"><span class="linenos">4784</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4785"><a href="#L-4785"><span class="linenos">4785</span></a>
+</span><span id="L-4786"><a href="#L-4786"><span class="linenos">4786</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span>
+</span><span id="L-4787"><a href="#L-4787"><span class="linenos">4787</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-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">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="L-4791"><a href="#L-4791"><span class="linenos">4791</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-4792"><a href="#L-4792"><span class="linenos">4792</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-4793"><a href="#L-4793"><span class="linenos">4793</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-4794"><a href="#L-4794"><span class="linenos">4794</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-4795"><a href="#L-4795"><span class="linenos">4795</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-4796"><a href="#L-4796"><span class="linenos">4796</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="L-4797"><a href="#L-4797"><span class="linenos">4797</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4798"><a href="#L-4798"><span class="linenos">4798</span></a><span class="sd"> Build a Column.</span>
+</span><span id="L-4799"><a href="#L-4799"><span class="linenos">4799</span></a>
+</span><span id="L-4800"><a href="#L-4800"><span class="linenos">4800</span></a><span class="sd"> Args:</span>
+</span><span id="L-4801"><a href="#L-4801"><span class="linenos">4801</span></a><span class="sd"> col: column name</span>
+</span><span id="L-4802"><a href="#L-4802"><span class="linenos">4802</span></a><span class="sd"> table: table name</span>
+</span><span id="L-4803"><a href="#L-4803"><span class="linenos">4803</span></a><span class="sd"> db: db name</span>
+</span><span id="L-4804"><a href="#L-4804"><span class="linenos">4804</span></a><span class="sd"> catalog: catalog name</span>
+</span><span id="L-4805"><a href="#L-4805"><span class="linenos">4805</span></a><span class="sd"> quoted: whether or not to force quote each part</span>
+</span><span id="L-4806"><a href="#L-4806"><span class="linenos">4806</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4807"><a href="#L-4807"><span class="linenos">4807</span></a><span class="sd"> Column: column instance</span>
+</span><span id="L-4808"><a href="#L-4808"><span class="linenos">4808</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4809"><a href="#L-4809"><span class="linenos">4809</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
+</span><span id="L-4810"><a href="#L-4810"><span class="linenos">4810</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-4811"><a href="#L-4811"><span class="linenos">4811</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-4812"><a href="#L-4812"><span class="linenos">4812</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-4813"><a href="#L-4813"><span class="linenos">4813</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-4814"><a href="#L-4814"><span class="linenos">4814</span></a> <span class="p">)</span>
</span><span id="L-4815"><a href="#L-4815"><span class="linenos">4815</span></a>
-</span><span id="L-4816"><a href="#L-4816"><span class="linenos">4816</span></a><span class="sd"> Args:</span>
-</span><span id="L-4817"><a href="#L-4817"><span class="linenos">4817</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-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="sd"> Returns:</span>
-</span><span id="L-4820"><a href="#L-4820"><span class="linenos">4820</span></a><span class="sd"> The new variable node.</span>
-</span><span id="L-4821"><a href="#L-4821"><span class="linenos">4821</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4822"><a href="#L-4822"><span class="linenos">4822</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-4823"><a href="#L-4823"><span class="linenos">4823</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-4824"><a href="#L-4824"><span class="linenos">4824</span></a>
-</span><span id="L-4825"><a href="#L-4825"><span class="linenos">4825</span></a> <span 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-4826"><a href="#L-4826"><span class="linenos">4826</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-4827"><a href="#L-4827"><span class="linenos">4827</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-4828"><a href="#L-4828"><span class="linenos">4828</span></a>
-</span><span id="L-4829"><a href="#L-4829"><span class="linenos">4829</span></a>
-</span><span id="L-4830"><a href="#L-4830"><span class="linenos">4830</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">new_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
-</span><span id="L-4831"><a href="#L-4831"><span class="linenos">4831</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
-</span><span id="L-4832"><a href="#L-4832"><span class="linenos">4832</span></a>
-</span><span id="L-4833"><a href="#L-4833"><span class="linenos">4833</span></a><span class="sd"> Args:</span>
-</span><span id="L-4834"><a href="#L-4834"><span class="linenos">4834</span></a><span class="sd"> old_name: The old name of the table</span>
-</span><span id="L-4835"><a href="#L-4835"><span class="linenos">4835</span></a><span class="sd"> new_name: The new name of the table</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"> Returns:</span>
-</span><span id="L-4838"><a href="#L-4838"><span class="linenos">4838</span></a><span class="sd"> Alter table expression</span>
-</span><span id="L-4839"><a href="#L-4839"><span class="linenos">4839</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4840"><a href="#L-4840"><span class="linenos">4840</span></a> <span class="n">old_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">)</span>
-</span><span id="L-4841"><a href="#L-4841"><span class="linenos">4841</span></a> <span class="n">new_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
-</span><span id="L-4842"><a href="#L-4842"><span class="linenos">4842</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="L-4843"><a href="#L-4843"><span class="linenos">4843</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-4844"><a href="#L-4844"><span class="linenos">4844</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-4845"><a href="#L-4845"><span class="linenos">4845</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-4846"><a href="#L-4846"><span class="linenos">4846</span></a> <span class="p">],</span>
-</span><span id="L-4847"><a href="#L-4847"><span class="linenos">4847</span></a> <span class="p">)</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">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-4851"><a href="#L-4851"><span class="linenos">4851</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-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 class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
+</span><span id="L-4818"><a href="#L-4818"><span class="linenos">4818</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
+</span><span id="L-4819"><a href="#L-4819"><span class="linenos">4819</span></a>
+</span><span id="L-4820"><a href="#L-4820"><span class="linenos">4820</span></a><span class="sd"> Example:</span>
+</span><span id="L-4821"><a href="#L-4821"><span class="linenos">4821</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
+</span><span id="L-4822"><a href="#L-4822"><span class="linenos">4822</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
+</span><span id="L-4823"><a href="#L-4823"><span class="linenos">4823</span></a>
+</span><span id="L-4824"><a href="#L-4824"><span class="linenos">4824</span></a><span class="sd"> Args:</span>
+</span><span id="L-4825"><a href="#L-4825"><span class="linenos">4825</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="L-4826"><a href="#L-4826"><span class="linenos">4826</span></a><span class="sd"> to: The datatype to cast to.</span>
+</span><span id="L-4827"><a href="#L-4827"><span class="linenos">4827</span></a>
+</span><span id="L-4828"><a href="#L-4828"><span class="linenos">4828</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4829"><a href="#L-4829"><span class="linenos">4829</span></a><span class="sd"> A cast node.</span>
+</span><span id="L-4830"><a href="#L-4830"><span class="linenos">4830</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4831"><a href="#L-4831"><span class="linenos">4831</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4832"><a href="#L-4832"><span class="linenos">4832</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="L-4833"><a href="#L-4833"><span class="linenos">4833</span></a>
+</span><span id="L-4834"><a href="#L-4834"><span class="linenos">4834</span></a>
+</span><span id="L-4835"><a href="#L-4835"><span class="linenos">4835</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="L-4836"><a href="#L-4836"><span class="linenos">4836</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</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="sd"> Args:</span>
+</span><span id="L-4839"><a href="#L-4839"><span class="linenos">4839</span></a><span class="sd"> table (str | Expression): column name</span>
+</span><span id="L-4840"><a href="#L-4840"><span class="linenos">4840</span></a><span class="sd"> db (str | Expression): db name</span>
+</span><span id="L-4841"><a href="#L-4841"><span class="linenos">4841</span></a><span class="sd"> catalog (str | Expression): catalog name</span>
+</span><span id="L-4842"><a href="#L-4842"><span class="linenos">4842</span></a>
+</span><span id="L-4843"><a href="#L-4843"><span class="linenos">4843</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4844"><a href="#L-4844"><span class="linenos">4844</span></a><span class="sd"> Table: table instance</span>
+</span><span id="L-4845"><a href="#L-4845"><span class="linenos">4845</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4846"><a href="#L-4846"><span class="linenos">4846</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
+</span><span id="L-4847"><a href="#L-4847"><span class="linenos">4847</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-4848"><a href="#L-4848"><span class="linenos">4848</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-4849"><a href="#L-4849"><span class="linenos">4849</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-4850"><a href="#L-4850"><span class="linenos">4850</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-4851"><a href="#L-4851"><span class="linenos">4851</span></a> <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 class="sd"> Raises an error if a conversion is not possible.</span>
-</span><span id="L-4854"><a href="#L-4854"><span class="linenos">4854</span></a>
-</span><span id="L-4855"><a href="#L-4855"><span class="linenos">4855</span></a><span class="sd"> Args:</span>
-</span><span id="L-4856"><a href="#L-4856"><span class="linenos">4856</span></a><span class="sd"> value (Any): a python object</span>
-</span><span id="L-4857"><a href="#L-4857"><span class="linenos">4857</span></a>
-</span><span id="L-4858"><a href="#L-4858"><span class="linenos">4858</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4859"><a href="#L-4859"><span class="linenos">4859</span></a><span class="sd"> Expression: the equivalent expression object</span>
-</span><span id="L-4860"><a href="#L-4860"><span class="linenos">4860</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4861"><a href="#L-4861"><span class="linenos">4861</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-4862"><a href="#L-4862"><span class="linenos">4862</span></a> <span class="k">return</span> <span class="n">value</span>
-</span><span id="L-4863"><a href="#L-4863"><span class="linenos">4863</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-4864"><a href="#L-4864"><span class="linenos">4864</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="L-4865"><a href="#L-4865"><span class="linenos">4865</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-4866"><a href="#L-4866"><span class="linenos">4866</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-4867"><a href="#L-4867"><span class="linenos">4867</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-4868"><a href="#L-4868"><span class="linenos">4868</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-4869"><a href="#L-4869"><span class="linenos">4869</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">):</span>
-</span><span id="L-4870"><a href="#L-4870"><span class="linenos">4870</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="L-4871"><a href="#L-4871"><span class="linenos">4871</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-4872"><a href="#L-4872"><span class="linenos">4872</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-4873"><a href="#L-4873"><span class="linenos">4873</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-4874"><a href="#L-4874"><span class="linenos">4874</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="L-4875"><a href="#L-4875"><span class="linenos">4875</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-4876"><a href="#L-4876"><span class="linenos">4876</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="L-4877"><a href="#L-4877"><span class="linenos">4877</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-4878"><a href="#L-4878"><span class="linenos">4878</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
-</span><span id="L-4879"><a href="#L-4879"><span class="linenos">4879</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">],</span>
-</span><span id="L-4880"><a href="#L-4880"><span class="linenos">4880</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()],</span>
-</span><span id="L-4881"><a href="#L-4881"><span class="linenos">4881</span></a> <span class="p">)</span>
-</span><span id="L-4882"><a href="#L-4882"><span class="linenos">4882</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-4883"><a href="#L-4883"><span class="linenos">4883</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-4884"><a href="#L-4884"><span class="linenos">4884</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-4885"><a href="#L-4885"><span class="linenos">4885</span></a> <span class="p">)</span>
-</span><span id="L-4886"><a href="#L-4886"><span class="linenos">4886</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-4887"><a href="#L-4887"><span class="linenos">4887</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-4888"><a href="#L-4888"><span class="linenos">4888</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-4889"><a href="#L-4889"><span class="linenos">4889</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-4890"><a href="#L-4890"><span class="linenos">4890</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-4891"><a href="#L-4891"><span class="linenos">4891</span></a>
-</span><span id="L-4892"><a href="#L-4892"><span class="linenos">4892</span></a>
-</span><span id="L-4893"><a href="#L-4893"><span class="linenos">4893</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span 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-4894"><a href="#L-4894"><span class="linenos">4894</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4895"><a href="#L-4895"><span class="linenos">4895</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-4896"><a href="#L-4896"><span class="linenos">4896</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4897"><a href="#L-4897"><span class="linenos">4897</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</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-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 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-4901"><a href="#L-4901"><span class="linenos">4901</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
+</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">def</span> <span class="nf">values</span><span class="p">(</span>
+</span><span id="L-4855"><a href="#L-4855"><span class="linenos">4855</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-4856"><a href="#L-4856"><span class="linenos">4856</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-4857"><a href="#L-4857"><span class="linenos">4857</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-4858"><a href="#L-4858"><span class="linenos">4858</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
+</span><span id="L-4859"><a href="#L-4859"><span class="linenos">4859</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
+</span><span id="L-4860"><a href="#L-4860"><span class="linenos">4860</span></a>
+</span><span id="L-4861"><a href="#L-4861"><span class="linenos">4861</span></a><span class="sd"> Example:</span>
+</span><span id="L-4862"><a href="#L-4862"><span class="linenos">4862</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
+</span><span id="L-4863"><a href="#L-4863"><span class="linenos">4863</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</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"> values: values statements that will be converted to SQL</span>
+</span><span id="L-4867"><a href="#L-4867"><span class="linenos">4867</span></a><span class="sd"> alias: optional alias</span>
+</span><span id="L-4868"><a href="#L-4868"><span class="linenos">4868</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-4869"><a href="#L-4869"><span class="linenos">4869</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+</span><span id="L-4870"><a href="#L-4870"><span class="linenos">4870</span></a><span class="sd"> If a dictionary is provided then the first column of the values will be casted to the expected type</span>
+</span><span id="L-4871"><a href="#L-4871"><span class="linenos">4871</span></a><span class="sd"> in order to help with type inference.</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 class="sd"> Returns:</span>
+</span><span id="L-4874"><a href="#L-4874"><span class="linenos">4874</span></a><span class="sd"> Values: the Values expression object</span>
+</span><span id="L-4875"><a href="#L-4875"><span class="linenos">4875</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4876"><a href="#L-4876"><span class="linenos">4876</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-4877"><a href="#L-4877"><span class="linenos">4877</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Alias is required when providing columns&quot;</span><span class="p">)</span>
+</span><span id="L-4878"><a href="#L-4878"><span class="linenos">4878</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="p">(</span>
+</span><span id="L-4879"><a href="#L-4879"><span class="linenos">4879</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-4880"><a href="#L-4880"><span class="linenos">4880</span></a> <span class="k">if</span> <span class="n">columns</span>
+</span><span id="L-4881"><a href="#L-4881"><span class="linenos">4881</span></a> <span class="k">else</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-4882"><a href="#L-4882"><span class="linenos">4882</span></a> <span class="p">)</span>
+</span><span id="L-4883"><a href="#L-4883"><span class="linenos">4883</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-4884"><a href="#L-4884"><span class="linenos">4884</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">columns</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
+</span><span id="L-4885"><a href="#L-4885"><span class="linenos">4885</span></a> <span class="n">types</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">())</span>
+</span><span id="L-4886"><a href="#L-4886"><span class="linenos">4886</span></a> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="L-4887"><a href="#L-4887"><span class="linenos">4887</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="L-4888"><a href="#L-4888"><span class="linenos">4888</span></a> <span class="p">[</span><span class="n">cast</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">types</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span><span class="p">)],</span>
+</span><span id="L-4889"><a href="#L-4889"><span class="linenos">4889</span></a> <span class="p">)</span>
+</span><span id="L-4890"><a href="#L-4890"><span class="linenos">4890</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
+</span><span id="L-4891"><a href="#L-4891"><span class="linenos">4891</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-4892"><a href="#L-4892"><span class="linenos">4892</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span>
+</span><span id="L-4893"><a href="#L-4893"><span class="linenos">4893</span></a> <span class="p">)</span>
+</span><span id="L-4894"><a href="#L-4894"><span class="linenos">4894</span></a>
+</span><span id="L-4895"><a href="#L-4895"><span class="linenos">4895</span></a>
+</span><span id="L-4896"><a href="#L-4896"><span class="linenos">4896</span></a><span class="k">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-4897"><a href="#L-4897"><span class="linenos">4897</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
+</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</span></a>
+</span><span id="L-4899"><a href="#L-4899"><span class="linenos">4899</span></a><span class="sd"> Example:</span>
+</span><span id="L-4900"><a href="#L-4900"><span class="linenos">4900</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
+</span><span id="L-4901"><a href="#L-4901"><span class="linenos">4901</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
</span><span id="L-4902"><a href="#L-4902"><span class="linenos">4902</span></a>
-</span><span id="L-4903"><a href="#L-4903"><span class="linenos">4903</span></a> <span 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-4904"><a href="#L-4904"><span class="linenos">4904</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-4905"><a href="#L-4905"><span class="linenos">4905</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-4906"><a href="#L-4906"><span class="linenos">4906</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-4907"><a href="#L-4907"><span class="linenos">4907</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">expression</span>
-</span><span id="L-4908"><a href="#L-4908"><span class="linenos">4908</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">k</span>
-</span><span id="L-4909"><a href="#L-4909"><span class="linenos">4909</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-4910"><a href="#L-4910"><span class="linenos">4910</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-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="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_child_nodes</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">new_child_nodes</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
-</span><span id="L-4913"><a href="#L-4913"><span class="linenos">4913</span></a>
+</span><span id="L-4903"><a href="#L-4903"><span class="linenos">4903</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
+</span><span id="L-4904"><a href="#L-4904"><span class="linenos">4904</span></a><span class="sd"> &#39;(VAR this: x)&#39;</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 class="sd"> Args:</span>
+</span><span id="L-4907"><a href="#L-4907"><span class="linenos">4907</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-4908"><a href="#L-4908"><span class="linenos">4908</span></a>
+</span><span id="L-4909"><a href="#L-4909"><span class="linenos">4909</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4910"><a href="#L-4910"><span class="linenos">4910</span></a><span class="sd"> The new variable node.</span>
+</span><span id="L-4911"><a href="#L-4911"><span class="linenos">4911</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4912"><a href="#L-4912"><span class="linenos">4912</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-4913"><a href="#L-4913"><span class="linenos">4913</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-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">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span>
-</span><span id="L-4916"><a href="#L-4916"><span class="linenos">4916</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4917"><a href="#L-4917"><span class="linenos">4917</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
+</span><span id="L-4915"><a href="#L-4915"><span class="linenos">4915</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-4916"><a href="#L-4916"><span class="linenos">4916</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-4917"><a href="#L-4917"><span class="linenos">4917</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-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="sd"> Example:</span>
-</span><span id="L-4920"><a href="#L-4920"><span class="linenos">4920</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-4921"><a href="#L-4921"><span class="linenos">4921</span></a><span class="sd"> &gt;&gt;&gt; column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;))</span>
-</span><span id="L-4922"><a href="#L-4922"><span class="linenos">4922</span></a><span class="sd"> [&#39;c&#39;, &#39;a&#39;]</span>
-</span><span id="L-4923"><a href="#L-4923"><span class="linenos">4923</span></a>
-</span><span id="L-4924"><a href="#L-4924"><span class="linenos">4924</span></a><span class="sd"> Args:</span>
-</span><span id="L-4925"><a href="#L-4925"><span class="linenos">4925</span></a><span class="sd"> expression (sqlglot.Expression): expression to find table names</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 class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">new_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
+</span><span id="L-4921"><a href="#L-4921"><span class="linenos">4921</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="L-4922"><a href="#L-4922"><span class="linenos">4922</span></a>
+</span><span id="L-4923"><a href="#L-4923"><span class="linenos">4923</span></a><span class="sd"> Args:</span>
+</span><span id="L-4924"><a href="#L-4924"><span class="linenos">4924</span></a><span class="sd"> old_name: The old name of the table</span>
+</span><span id="L-4925"><a href="#L-4925"><span class="linenos">4925</span></a><span class="sd"> new_name: The new name of the table</span>
</span><span id="L-4926"><a href="#L-4926"><span class="linenos">4926</span></a>
</span><span id="L-4927"><a href="#L-4927"><span class="linenos">4927</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4928"><a href="#L-4928"><span class="linenos">4928</span></a><span class="sd"> list: A list of unique names</span>
+</span><span id="L-4928"><a href="#L-4928"><span class="linenos">4928</span></a><span class="sd"> Alter table expression</span>
</span><span id="L-4929"><a href="#L-4929"><span class="linenos">4929</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4930"><a href="#L-4930"><span class="linenos">4930</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">)))</span>
-</span><span id="L-4931"><a href="#L-4931"><span class="linenos">4931</span></a>
-</span><span id="L-4932"><a href="#L-4932"><span class="linenos">4932</span></a>
-</span><span id="L-4933"><a href="#L-4933"><span class="linenos">4933</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-4934"><a href="#L-4934"><span class="linenos">4934</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-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="sd"> Args:</span>
-</span><span id="L-4937"><a href="#L-4937"><span class="linenos">4937</span></a><span class="sd"> table (exp.Table | str): table expression node or string.</span>
+</span><span id="L-4930"><a href="#L-4930"><span class="linenos">4930</span></a> <span class="n">old_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">)</span>
+</span><span id="L-4931"><a href="#L-4931"><span class="linenos">4931</span></a> <span class="n">new_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
+</span><span id="L-4932"><a href="#L-4932"><span class="linenos">4932</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="L-4933"><a href="#L-4933"><span class="linenos">4933</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-4934"><a href="#L-4934"><span class="linenos">4934</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-4935"><a href="#L-4935"><span class="linenos">4935</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-4936"><a href="#L-4936"><span class="linenos">4936</span></a> <span class="p">],</span>
+</span><span id="L-4937"><a href="#L-4937"><span class="linenos">4937</span></a> <span class="p">)</span>
</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="sd"> Examples:</span>
-</span><span id="L-4940"><a href="#L-4940"><span class="linenos">4940</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-4941"><a href="#L-4941"><span class="linenos">4941</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-4942"><a href="#L-4942"><span class="linenos">4942</span></a><span class="sd"> &#39;a.b.c&#39;</span>
-</span><span id="L-4943"><a href="#L-4943"><span class="linenos">4943</span></a>
-</span><span id="L-4944"><a href="#L-4944"><span class="linenos">4944</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4945"><a href="#L-4945"><span class="linenos">4945</span></a><span class="sd"> The table name.</span>
-</span><span id="L-4946"><a href="#L-4946"><span class="linenos">4946</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4939"><a href="#L-4939"><span class="linenos">4939</span></a>
+</span><span id="L-4940"><a href="#L-4940"><span class="linenos">4940</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-4941"><a href="#L-4941"><span class="linenos">4941</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-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="sd"> Raises an error if a conversion is not possible.</span>
+</span><span id="L-4944"><a href="#L-4944"><span class="linenos">4944</span></a>
+</span><span id="L-4945"><a href="#L-4945"><span class="linenos">4945</span></a><span class="sd"> Args:</span>
+</span><span id="L-4946"><a href="#L-4946"><span class="linenos">4946</span></a><span class="sd"> value (Any): a python object</span>
</span><span id="L-4947"><a href="#L-4947"><span class="linenos">4947</span></a>
-</span><span id="L-4948"><a href="#L-4948"><span class="linenos">4948</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
-</span><span id="L-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="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-4951"><a href="#L-4951"><span class="linenos">4951</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-4952"><a href="#L-4952"><span class="linenos">4952</span></a>
-</span><span id="L-4953"><a href="#L-4953"><span class="linenos">4953</span></a> <span class="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-4954"><a href="#L-4954"><span class="linenos">4954</span></a> <span class="n">part</span>
-</span><span id="L-4955"><a href="#L-4955"><span class="linenos">4955</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span>
-</span><span id="L-4956"><a href="#L-4956"><span class="linenos">4956</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">),</span>
-</span><span id="L-4957"><a href="#L-4957"><span class="linenos">4957</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">),</span>
-</span><span id="L-4958"><a href="#L-4958"><span class="linenos">4958</span></a> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
-</span><span id="L-4959"><a href="#L-4959"><span class="linenos">4959</span></a> <span class="p">)</span>
-</span><span id="L-4960"><a href="#L-4960"><span class="linenos">4960</span></a> <span class="k">if</span> <span class="n">part</span>
-</span><span id="L-4961"><a href="#L-4961"><span class="linenos">4961</span></a> <span class="p">)</span>
-</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><span id="L-4964"><a href="#L-4964"><span class="linenos">4964</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">mapping</span><span class="p">):</span>
-</span><span id="L-4965"><a href="#L-4965"><span class="linenos">4965</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-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="sd"> Args:</span>
-</span><span id="L-4968"><a href="#L-4968"><span class="linenos">4968</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
-</span><span id="L-4969"><a href="#L-4969"><span class="linenos">4969</span></a><span class="sd"> mapping (Dict[str, str]): mapping of table names.</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="sd"> Examples:</span>
-</span><span id="L-4972"><a href="#L-4972"><span class="linenos">4972</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-4973"><a href="#L-4973"><span class="linenos">4973</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-4974"><a href="#L-4974"><span class="linenos">4974</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
-</span><span id="L-4975"><a href="#L-4975"><span class="linenos">4975</span></a>
-</span><span id="L-4976"><a href="#L-4976"><span class="linenos">4976</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4977"><a href="#L-4977"><span class="linenos">4977</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="L-4978"><a href="#L-4978"><span class="linenos">4978</span></a><span class="sd"> &quot;&quot;&quot;</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="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
-</span><span id="L-4981"><a href="#L-4981"><span class="linenos">4981</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-4982"><a href="#L-4982"><span class="linenos">4982</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span>
-</span><span id="L-4983"><a href="#L-4983"><span class="linenos">4983</span></a> <span class="k">if</span> <span class="n">new_name</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="n">to_table</span><span class="p">(</span>
-</span><span id="L-4985"><a href="#L-4985"><span class="linenos">4985</span></a> <span class="n">new_name</span><span class="p">,</span>
-</span><span id="L-4986"><a href="#L-4986"><span class="linenos">4986</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">)},</span>
-</span><span id="L-4987"><a href="#L-4987"><span class="linenos">4987</span></a> <span class="p">)</span>
-</span><span id="L-4988"><a href="#L-4988"><span class="linenos">4988</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-4948"><a href="#L-4948"><span class="linenos">4948</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4949"><a href="#L-4949"><span class="linenos">4949</span></a><span class="sd"> Expression: the equivalent expression object</span>
+</span><span id="L-4950"><a href="#L-4950"><span class="linenos">4950</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4951"><a href="#L-4951"><span class="linenos">4951</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-4952"><a href="#L-4952"><span class="linenos">4952</span></a> <span class="k">return</span> <span class="n">value</span>
+</span><span id="L-4953"><a href="#L-4953"><span class="linenos">4953</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-4954"><a href="#L-4954"><span class="linenos">4954</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="L-4955"><a href="#L-4955"><span class="linenos">4955</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-4956"><a href="#L-4956"><span class="linenos">4956</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-4957"><a href="#L-4957"><span class="linenos">4957</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-4958"><a href="#L-4958"><span class="linenos">4958</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-4959"><a href="#L-4959"><span class="linenos">4959</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">):</span>
+</span><span id="L-4960"><a href="#L-4960"><span class="linenos">4960</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="L-4961"><a href="#L-4961"><span class="linenos">4961</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-4962"><a href="#L-4962"><span class="linenos">4962</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-4963"><a href="#L-4963"><span class="linenos">4963</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-4964"><a href="#L-4964"><span class="linenos">4964</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="L-4965"><a href="#L-4965"><span class="linenos">4965</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-4966"><a href="#L-4966"><span class="linenos">4966</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="L-4967"><a href="#L-4967"><span class="linenos">4967</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-4968"><a href="#L-4968"><span class="linenos">4968</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
+</span><span id="L-4969"><a href="#L-4969"><span class="linenos">4969</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">],</span>
+</span><span id="L-4970"><a href="#L-4970"><span class="linenos">4970</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()],</span>
+</span><span id="L-4971"><a href="#L-4971"><span class="linenos">4971</span></a> <span class="p">)</span>
+</span><span id="L-4972"><a href="#L-4972"><span class="linenos">4972</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-4973"><a href="#L-4973"><span class="linenos">4973</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-4974"><a href="#L-4974"><span class="linenos">4974</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-4975"><a href="#L-4975"><span class="linenos">4975</span></a> <span class="p">)</span>
+</span><span id="L-4976"><a href="#L-4976"><span class="linenos">4976</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-4977"><a href="#L-4977"><span class="linenos">4977</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-4978"><a href="#L-4978"><span class="linenos">4978</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-4979"><a href="#L-4979"><span class="linenos">4979</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-4980"><a href="#L-4980"><span class="linenos">4980</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-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">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span 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-4984"><a href="#L-4984"><span class="linenos">4984</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4985"><a href="#L-4985"><span class="linenos">4985</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-4986"><a href="#L-4986"><span class="linenos">4986</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4987"><a href="#L-4987"><span class="linenos">4987</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="L-4988"><a href="#L-4988"><span class="linenos">4988</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-4989"><a href="#L-4989"><span class="linenos">4989</span></a>
-</span><span id="L-4990"><a href="#L-4990"><span class="linenos">4990</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">)</span>
-</span><span id="L-4991"><a href="#L-4991"><span class="linenos">4991</span></a>
+</span><span id="L-4990"><a href="#L-4990"><span class="linenos">4990</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-4991"><a href="#L-4991"><span class="linenos">4991</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-4992"><a href="#L-4992"><span class="linenos">4992</span></a>
-</span><span id="L-4993"><a href="#L-4993"><span class="linenos">4993</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="L-4994"><a href="#L-4994"><span class="linenos">4994</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
-</span><span id="L-4995"><a href="#L-4995"><span class="linenos">4995</span></a>
-</span><span id="L-4996"><a href="#L-4996"><span class="linenos">4996</span></a><span class="sd"> Args:</span>
-</span><span id="L-4997"><a href="#L-4997"><span class="linenos">4997</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
-</span><span id="L-4998"><a href="#L-4998"><span class="linenos">4998</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
-</span><span id="L-4999"><a href="#L-4999"><span class="linenos">4999</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
-</span><span id="L-5000"><a href="#L-5000"><span class="linenos">5000</span></a>
-</span><span id="L-5001"><a href="#L-5001"><span class="linenos">5001</span></a><span class="sd"> Examples:</span>
-</span><span id="L-5002"><a href="#L-5002"><span class="linenos">5002</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-5003"><a href="#L-5003"><span class="linenos">5003</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
-</span><span id="L-5004"><a href="#L-5004"><span class="linenos">5004</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
-</span><span id="L-5005"><a href="#L-5005"><span class="linenos">5005</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-5006"><a href="#L-5006"><span class="linenos">5006</span></a><span class="sd"> ... ).sql()</span>
-</span><span id="L-5007"><a href="#L-5007"><span class="linenos">5007</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
+</span><span id="L-4993"><a href="#L-4993"><span class="linenos">4993</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-4994"><a href="#L-4994"><span class="linenos">4994</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-4995"><a href="#L-4995"><span class="linenos">4995</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-4996"><a href="#L-4996"><span class="linenos">4996</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-4997"><a href="#L-4997"><span class="linenos">4997</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">expression</span>
+</span><span id="L-4998"><a href="#L-4998"><span class="linenos">4998</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">k</span>
+</span><span id="L-4999"><a href="#L-4999"><span class="linenos">4999</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-5000"><a href="#L-5000"><span class="linenos">5000</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-5001"><a href="#L-5001"><span class="linenos">5001</span></a>
+</span><span id="L-5002"><a href="#L-5002"><span class="linenos">5002</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_child_nodes</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">new_child_nodes</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
+</span><span id="L-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><span id="L-5005"><a href="#L-5005"><span class="linenos">5005</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span>
+</span><span id="L-5006"><a href="#L-5006"><span class="linenos">5006</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5007"><a href="#L-5007"><span class="linenos">5007</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
</span><span id="L-5008"><a href="#L-5008"><span class="linenos">5008</span></a>
-</span><span id="L-5009"><a href="#L-5009"><span class="linenos">5009</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5010"><a href="#L-5010"><span class="linenos">5010</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="L-5011"><a href="#L-5011"><span class="linenos">5011</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5012"><a href="#L-5012"><span class="linenos">5012</span></a>
-</span><span id="L-5013"><a href="#L-5013"><span class="linenos">5013</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="L-5014"><a href="#L-5014"><span class="linenos">5014</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-5015"><a href="#L-5015"><span class="linenos">5015</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">:</span>
-</span><span id="L-5016"><a href="#L-5016"><span class="linenos">5016</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="L-5017"><a href="#L-5017"><span class="linenos">5017</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="L-5018"><a href="#L-5018"><span class="linenos">5018</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-5019"><a href="#L-5019"><span class="linenos">5019</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-5020"><a href="#L-5020"><span class="linenos">5020</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-5021"><a href="#L-5021"><span class="linenos">5021</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-5022"><a href="#L-5022"><span class="linenos">5022</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
-</span><span id="L-5023"><a href="#L-5023"><span class="linenos">5023</span></a> <span class="k">pass</span>
-</span><span id="L-5024"><a href="#L-5024"><span class="linenos">5024</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-5009"><a href="#L-5009"><span class="linenos">5009</span></a><span class="sd"> Example:</span>
+</span><span id="L-5010"><a href="#L-5010"><span class="linenos">5010</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-5011"><a href="#L-5011"><span class="linenos">5011</span></a><span class="sd"> &gt;&gt;&gt; column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;))</span>
+</span><span id="L-5012"><a href="#L-5012"><span class="linenos">5012</span></a><span class="sd"> [&#39;c&#39;, &#39;a&#39;]</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 class="sd"> Args:</span>
+</span><span id="L-5015"><a href="#L-5015"><span class="linenos">5015</span></a><span class="sd"> expression (sqlglot.Expression): expression to find table names</span>
+</span><span id="L-5016"><a href="#L-5016"><span class="linenos">5016</span></a>
+</span><span id="L-5017"><a href="#L-5017"><span class="linenos">5017</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5018"><a href="#L-5018"><span class="linenos">5018</span></a><span class="sd"> list: A list of unique names</span>
+</span><span id="L-5019"><a href="#L-5019"><span class="linenos">5019</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5020"><a href="#L-5020"><span class="linenos">5020</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">)))</span>
+</span><span id="L-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">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-5024"><a href="#L-5024"><span class="linenos">5024</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-5025"><a href="#L-5025"><span class="linenos">5025</span></a>
-</span><span id="L-5026"><a href="#L-5026"><span class="linenos">5026</span></a> <span class="k">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-5027"><a href="#L-5027"><span class="linenos">5027</span></a>
+</span><span id="L-5026"><a href="#L-5026"><span class="linenos">5026</span></a><span class="sd"> Args:</span>
+</span><span id="L-5027"><a href="#L-5027"><span class="linenos">5027</span></a><span class="sd"> table (exp.Table | str): table expression node or string.</span>
</span><span id="L-5028"><a href="#L-5028"><span class="linenos">5028</span></a>
-</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-5030"><a href="#L-5030"><span class="linenos">5030</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-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 class="sd"> Examples:</span>
-</span><span id="L-5033"><a href="#L-5033"><span class="linenos">5033</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="L-5034"><a href="#L-5034"><span class="linenos">5034</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-5035"><a href="#L-5035"><span class="linenos">5035</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
-</span><span id="L-5036"><a href="#L-5036"><span class="linenos">5036</span></a>
-</span><span id="L-5037"><a href="#L-5037"><span class="linenos">5037</span></a><span class="sd"> Args:</span>
-</span><span id="L-5038"><a href="#L-5038"><span class="linenos">5038</span></a><span class="sd"> expression: The expression to expand.</span>
-</span><span id="L-5039"><a href="#L-5039"><span class="linenos">5039</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
-</span><span id="L-5040"><a href="#L-5040"><span class="linenos">5040</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
-</span><span id="L-5041"><a href="#L-5041"><span class="linenos">5041</span></a>
-</span><span id="L-5042"><a href="#L-5042"><span class="linenos">5042</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5043"><a href="#L-5043"><span class="linenos">5043</span></a><span class="sd"> The transformed expression.</span>
-</span><span id="L-5044"><a href="#L-5044"><span class="linenos">5044</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5045"><a href="#L-5045"><span class="linenos">5045</span></a>
-</span><span id="L-5046"><a href="#L-5046"><span class="linenos">5046</span></a> <span 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-5047"><a href="#L-5047"><span class="linenos">5047</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-5048"><a href="#L-5048"><span class="linenos">5048</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
-</span><span id="L-5049"><a href="#L-5049"><span class="linenos">5049</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-5050"><a href="#L-5050"><span class="linenos">5050</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
-</span><span id="L-5051"><a href="#L-5051"><span class="linenos">5051</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-5052"><a href="#L-5052"><span class="linenos">5052</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-5053"><a href="#L-5053"><span class="linenos">5053</span></a> <span class="k">return</span> <span class="n">subquery</span>
-</span><span id="L-5054"><a href="#L-5054"><span class="linenos">5054</span></a> <span class="k">return</span> <span class="n">node</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 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-5057"><a href="#L-5057"><span class="linenos">5057</span></a>
-</span><span id="L-5058"><a href="#L-5058"><span class="linenos">5058</span></a>
-</span><span id="L-5059"><a href="#L-5059"><span class="linenos">5059</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
-</span><span id="L-5060"><a href="#L-5060"><span class="linenos">5060</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5061"><a href="#L-5061"><span class="linenos">5061</span></a><span class="sd"> Returns a Func expression.</span>
-</span><span id="L-5062"><a href="#L-5062"><span class="linenos">5062</span></a>
-</span><span id="L-5063"><a href="#L-5063"><span class="linenos">5063</span></a><span class="sd"> Examples:</span>
-</span><span id="L-5064"><a href="#L-5064"><span class="linenos">5064</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
-</span><span id="L-5065"><a href="#L-5065"><span class="linenos">5065</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
-</span><span id="L-5066"><a href="#L-5066"><span class="linenos">5066</span></a>
-</span><span id="L-5067"><a href="#L-5067"><span class="linenos">5067</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;cast&quot;, this=5, to=DataType.build(&quot;DOUBLE&quot;)).sql()</span>
-</span><span id="L-5068"><a href="#L-5068"><span class="linenos">5068</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</span></a><span class="sd"> Examples:</span>
+</span><span id="L-5030"><a href="#L-5030"><span class="linenos">5030</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-5031"><a href="#L-5031"><span class="linenos">5031</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-5032"><a href="#L-5032"><span class="linenos">5032</span></a><span class="sd"> &#39;a.b.c&#39;</span>
+</span><span id="L-5033"><a href="#L-5033"><span class="linenos">5033</span></a>
+</span><span id="L-5034"><a href="#L-5034"><span class="linenos">5034</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5035"><a href="#L-5035"><span class="linenos">5035</span></a><span class="sd"> The table name.</span>
+</span><span id="L-5036"><a href="#L-5036"><span class="linenos">5036</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5037"><a href="#L-5037"><span class="linenos">5037</span></a>
+</span><span id="L-5038"><a href="#L-5038"><span class="linenos">5038</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
+</span><span id="L-5039"><a href="#L-5039"><span class="linenos">5039</span></a>
+</span><span id="L-5040"><a href="#L-5040"><span class="linenos">5040</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-5041"><a href="#L-5041"><span class="linenos">5041</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-5042"><a href="#L-5042"><span class="linenos">5042</span></a>
+</span><span id="L-5043"><a href="#L-5043"><span class="linenos">5043</span></a> <span class="k">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-5044"><a href="#L-5044"><span class="linenos">5044</span></a> <span class="n">part</span>
+</span><span id="L-5045"><a href="#L-5045"><span class="linenos">5045</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span>
+</span><span id="L-5046"><a href="#L-5046"><span class="linenos">5046</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">),</span>
+</span><span id="L-5047"><a href="#L-5047"><span class="linenos">5047</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">),</span>
+</span><span id="L-5048"><a href="#L-5048"><span class="linenos">5048</span></a> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
+</span><span id="L-5049"><a href="#L-5049"><span class="linenos">5049</span></a> <span class="p">)</span>
+</span><span id="L-5050"><a href="#L-5050"><span class="linenos">5050</span></a> <span class="k">if</span> <span class="n">part</span>
+</span><span id="L-5051"><a href="#L-5051"><span class="linenos">5051</span></a> <span class="p">)</span>
+</span><span id="L-5052"><a href="#L-5052"><span class="linenos">5052</span></a>
+</span><span id="L-5053"><a href="#L-5053"><span class="linenos">5053</span></a>
+</span><span id="L-5054"><a href="#L-5054"><span class="linenos">5054</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">mapping</span><span class="p">):</span>
+</span><span id="L-5055"><a href="#L-5055"><span class="linenos">5055</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-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 class="sd"> Args:</span>
+</span><span id="L-5058"><a href="#L-5058"><span class="linenos">5058</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
+</span><span id="L-5059"><a href="#L-5059"><span class="linenos">5059</span></a><span class="sd"> mapping (Dict[str, str]): mapping of table names.</span>
+</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 class="sd"> Examples:</span>
+</span><span id="L-5062"><a href="#L-5062"><span class="linenos">5062</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-5063"><a href="#L-5063"><span class="linenos">5063</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-5064"><a href="#L-5064"><span class="linenos">5064</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
+</span><span id="L-5065"><a href="#L-5065"><span class="linenos">5065</span></a>
+</span><span id="L-5066"><a href="#L-5066"><span class="linenos">5066</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5067"><a href="#L-5067"><span class="linenos">5067</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="L-5068"><a href="#L-5068"><span class="linenos">5068</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5069"><a href="#L-5069"><span class="linenos">5069</span></a>
-</span><span id="L-5070"><a href="#L-5070"><span class="linenos">5070</span></a><span class="sd"> Args:</span>
-</span><span id="L-5071"><a href="#L-5071"><span class="linenos">5071</span></a><span class="sd"> name: the name of the function to build.</span>
-</span><span id="L-5072"><a href="#L-5072"><span class="linenos">5072</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
-</span><span id="L-5073"><a href="#L-5073"><span class="linenos">5073</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="L-5074"><a href="#L-5074"><span class="linenos">5074</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="L-5075"><a href="#L-5075"><span class="linenos">5075</span></a>
-</span><span id="L-5076"><a href="#L-5076"><span class="linenos">5076</span></a><span class="sd"> Note:</span>
-</span><span id="L-5077"><a href="#L-5077"><span class="linenos">5077</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
-</span><span id="L-5078"><a href="#L-5078"><span class="linenos">5078</span></a>
-</span><span id="L-5079"><a href="#L-5079"><span class="linenos">5079</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5080"><a href="#L-5080"><span class="linenos">5080</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-5081"><a href="#L-5081"><span class="linenos">5081</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
-</span><span id="L-5082"><a href="#L-5082"><span class="linenos">5082</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5083"><a href="#L-5083"><span class="linenos">5083</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-5084"><a href="#L-5084"><span class="linenos">5084</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-5070"><a href="#L-5070"><span class="linenos">5070</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+</span><span id="L-5071"><a href="#L-5071"><span class="linenos">5071</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-5072"><a href="#L-5072"><span class="linenos">5072</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span>
+</span><span id="L-5073"><a href="#L-5073"><span class="linenos">5073</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="L-5074"><a href="#L-5074"><span class="linenos">5074</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
+</span><span id="L-5075"><a href="#L-5075"><span class="linenos">5075</span></a> <span class="n">new_name</span><span class="p">,</span>
+</span><span id="L-5076"><a href="#L-5076"><span class="linenos">5076</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">)},</span>
+</span><span id="L-5077"><a href="#L-5077"><span class="linenos">5077</span></a> <span class="p">)</span>
+</span><span id="L-5078"><a href="#L-5078"><span class="linenos">5078</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-5079"><a href="#L-5079"><span class="linenos">5079</span></a>
+</span><span id="L-5080"><a href="#L-5080"><span class="linenos">5080</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">)</span>
+</span><span id="L-5081"><a href="#L-5081"><span class="linenos">5081</span></a>
+</span><span id="L-5082"><a href="#L-5082"><span class="linenos">5082</span></a>
+</span><span id="L-5083"><a href="#L-5083"><span class="linenos">5083</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+</span><span id="L-5084"><a href="#L-5084"><span class="linenos">5084</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
</span><span id="L-5085"><a href="#L-5085"><span class="linenos">5085</span></a>
-</span><span id="L-5086"><a href="#L-5086"><span class="linenos">5086</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-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="n">converted</span> <span class="o">=</span> <span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
-</span><span id="L-5089"><a href="#L-5089"><span class="linenos">5089</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="L-5086"><a href="#L-5086"><span class="linenos">5086</span></a><span class="sd"> Args:</span>
+</span><span id="L-5087"><a href="#L-5087"><span class="linenos">5087</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
+</span><span id="L-5088"><a href="#L-5088"><span class="linenos">5088</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
+</span><span id="L-5089"><a href="#L-5089"><span class="linenos">5089</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
</span><span id="L-5090"><a href="#L-5090"><span class="linenos">5090</span></a>
-</span><span id="L-5091"><a href="#L-5091"><span class="linenos">5091</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span>
-</span><span id="L-5092"><a href="#L-5092"><span class="linenos">5092</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
-</span><span id="L-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">if</span> <span class="n">from_args_list</span><span class="p">:</span>
-</span><span id="L-5095"><a href="#L-5095"><span class="linenos">5095</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="L-5096"><a href="#L-5096"><span class="linenos">5096</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-5097"><a href="#L-5097"><span class="linenos">5097</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-5098"><a href="#L-5098"><span class="linenos">5098</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-5099"><a href="#L-5099"><span class="linenos">5099</span></a>
-</span><span id="L-5100"><a href="#L-5100"><span class="linenos">5100</span></a> <span class="k">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-5101"><a href="#L-5101"><span class="linenos">5101</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-5091"><a href="#L-5091"><span class="linenos">5091</span></a><span class="sd"> Examples:</span>
+</span><span id="L-5092"><a href="#L-5092"><span class="linenos">5092</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-5093"><a href="#L-5093"><span class="linenos">5093</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
+</span><span id="L-5094"><a href="#L-5094"><span class="linenos">5094</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
+</span><span id="L-5095"><a href="#L-5095"><span class="linenos">5095</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-5096"><a href="#L-5096"><span class="linenos">5096</span></a><span class="sd"> ... ).sql()</span>
+</span><span id="L-5097"><a href="#L-5097"><span class="linenos">5097</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
+</span><span id="L-5098"><a href="#L-5098"><span class="linenos">5098</span></a>
+</span><span id="L-5099"><a href="#L-5099"><span class="linenos">5099</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5100"><a href="#L-5100"><span class="linenos">5100</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="L-5101"><a href="#L-5101"><span class="linenos">5101</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5102"><a href="#L-5102"><span class="linenos">5102</span></a>
-</span><span id="L-5103"><a href="#L-5103"><span class="linenos">5103</span></a> <span class="k">return</span> <span class="n">function</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">def</span> <span class="nf">true</span><span class="p">():</span>
-</span><span id="L-5107"><a href="#L-5107"><span class="linenos">5107</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5108"><a href="#L-5108"><span class="linenos">5108</span></a><span class="sd"> Returns a true Boolean expression.</span>
-</span><span id="L-5109"><a href="#L-5109"><span class="linenos">5109</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5110"><a href="#L-5110"><span class="linenos">5110</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-5111"><a href="#L-5111"><span class="linenos">5111</span></a>
-</span><span id="L-5112"><a href="#L-5112"><span class="linenos">5112</span></a>
-</span><span id="L-5113"><a href="#L-5113"><span class="linenos">5113</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">():</span>
-</span><span id="L-5114"><a href="#L-5114"><span class="linenos">5114</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5115"><a href="#L-5115"><span class="linenos">5115</span></a><span class="sd"> Returns a false Boolean expression.</span>
-</span><span id="L-5116"><a href="#L-5116"><span class="linenos">5116</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5117"><a href="#L-5117"><span class="linenos">5117</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-5103"><a href="#L-5103"><span class="linenos">5103</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+</span><span id="L-5104"><a href="#L-5104"><span class="linenos">5104</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-5105"><a href="#L-5105"><span class="linenos">5105</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">:</span>
+</span><span id="L-5106"><a href="#L-5106"><span class="linenos">5106</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="L-5107"><a href="#L-5107"><span class="linenos">5107</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="L-5108"><a href="#L-5108"><span class="linenos">5108</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-5109"><a href="#L-5109"><span class="linenos">5109</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-5110"><a href="#L-5110"><span class="linenos">5110</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="L-5111"><a href="#L-5111"><span class="linenos">5111</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-5112"><a href="#L-5112"><span class="linenos">5112</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
+</span><span id="L-5113"><a href="#L-5113"><span class="linenos">5113</span></a> <span class="k">pass</span>
+</span><span id="L-5114"><a href="#L-5114"><span class="linenos">5114</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-5115"><a href="#L-5115"><span class="linenos">5115</span></a>
+</span><span id="L-5116"><a href="#L-5116"><span class="linenos">5116</span></a> <span class="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-5117"><a href="#L-5117"><span class="linenos">5117</span></a>
</span><span id="L-5118"><a href="#L-5118"><span class="linenos">5118</span></a>
-</span><span id="L-5119"><a href="#L-5119"><span class="linenos">5119</span></a>
-</span><span id="L-5120"><a href="#L-5120"><span class="linenos">5120</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">():</span>
-</span><span id="L-5121"><a href="#L-5121"><span class="linenos">5121</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5122"><a href="#L-5122"><span class="linenos">5122</span></a><span class="sd"> Returns a Null expression.</span>
-</span><span id="L-5123"><a href="#L-5123"><span class="linenos">5123</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5124"><a href="#L-5124"><span class="linenos">5124</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
-</span><span id="L-5125"><a href="#L-5125"><span class="linenos">5125</span></a>
-</span><span id="L-5126"><a href="#L-5126"><span class="linenos">5126</span></a>
-</span><span id="L-5127"><a href="#L-5127"><span class="linenos">5127</span></a><span class="c1"># TODO: deprecate this</span>
-</span><span id="L-5128"><a href="#L-5128"><span class="linenos">5128</span></a><span class="n">TRUE</span> <span class="o">=</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-5129"><a href="#L-5129"><span class="linenos">5129</span></a><span class="n">FALSE</span> <span class="o">=</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
-</span><span id="L-5130"><a href="#L-5130"><span class="linenos">5130</span></a><span class="n">NULL</span> <span class="o">=</span> <span class="n">Null</span><span class="p">()</span>
+</span><span id="L-5119"><a href="#L-5119"><span class="linenos">5119</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
+</span><span id="L-5120"><a href="#L-5120"><span class="linenos">5120</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5121"><a href="#L-5121"><span class="linenos">5121</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-5122"><a href="#L-5122"><span class="linenos">5122</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-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="sd"> Examples:</span>
+</span><span id="L-5125"><a href="#L-5125"><span class="linenos">5125</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="L-5126"><a href="#L-5126"><span class="linenos">5126</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-5127"><a href="#L-5127"><span class="linenos">5127</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
+</span><span id="L-5128"><a href="#L-5128"><span class="linenos">5128</span></a>
+</span><span id="L-5129"><a href="#L-5129"><span class="linenos">5129</span></a><span class="sd"> &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-5130"><a href="#L-5130"><span class="linenos">5130</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-5131"><a href="#L-5131"><span class="linenos">5131</span></a>
+</span><span id="L-5132"><a href="#L-5132"><span class="linenos">5132</span></a><span class="sd"> Args:</span>
+</span><span id="L-5133"><a href="#L-5133"><span class="linenos">5133</span></a><span class="sd"> expression: The expression to expand.</span>
+</span><span id="L-5134"><a href="#L-5134"><span class="linenos">5134</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
+</span><span id="L-5135"><a href="#L-5135"><span class="linenos">5135</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</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 class="sd"> Returns:</span>
+</span><span id="L-5138"><a href="#L-5138"><span class="linenos">5138</span></a><span class="sd"> The transformed expression.</span>
+</span><span id="L-5139"><a href="#L-5139"><span class="linenos">5139</span></a><span class="sd"> &quot;&quot;&quot;</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 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-5142"><a href="#L-5142"><span class="linenos">5142</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-5143"><a href="#L-5143"><span class="linenos">5143</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+</span><span id="L-5144"><a href="#L-5144"><span class="linenos">5144</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-5145"><a href="#L-5145"><span class="linenos">5145</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
+</span><span id="L-5146"><a href="#L-5146"><span class="linenos">5146</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-5147"><a href="#L-5147"><span class="linenos">5147</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-5148"><a href="#L-5148"><span class="linenos">5148</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-5149"><a href="#L-5149"><span class="linenos">5149</span></a> <span class="k">return</span> <span class="n">node</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 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-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">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
+</span><span id="L-5155"><a href="#L-5155"><span class="linenos">5155</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5156"><a href="#L-5156"><span class="linenos">5156</span></a><span class="sd"> Returns a Func expression.</span>
+</span><span id="L-5157"><a href="#L-5157"><span class="linenos">5157</span></a>
+</span><span id="L-5158"><a href="#L-5158"><span class="linenos">5158</span></a><span class="sd"> Examples:</span>
+</span><span id="L-5159"><a href="#L-5159"><span class="linenos">5159</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
+</span><span id="L-5160"><a href="#L-5160"><span class="linenos">5160</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
+</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="sd"> &gt;&gt;&gt; func(&quot;cast&quot;, this=5, to=DataType.build(&quot;DOUBLE&quot;)).sql()</span>
+</span><span id="L-5163"><a href="#L-5163"><span class="linenos">5163</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="L-5164"><a href="#L-5164"><span class="linenos">5164</span></a>
+</span><span id="L-5165"><a href="#L-5165"><span class="linenos">5165</span></a><span class="sd"> Args:</span>
+</span><span id="L-5166"><a href="#L-5166"><span class="linenos">5166</span></a><span class="sd"> name: the name of the function to build.</span>
+</span><span id="L-5167"><a href="#L-5167"><span class="linenos">5167</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
+</span><span id="L-5168"><a href="#L-5168"><span class="linenos">5168</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="L-5169"><a href="#L-5169"><span class="linenos">5169</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</span><span id="L-5170"><a href="#L-5170"><span class="linenos">5170</span></a>
+</span><span id="L-5171"><a href="#L-5171"><span class="linenos">5171</span></a><span class="sd"> Note:</span>
+</span><span id="L-5172"><a href="#L-5172"><span class="linenos">5172</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</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 class="sd"> Returns:</span>
+</span><span id="L-5175"><a href="#L-5175"><span class="linenos">5175</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-5176"><a href="#L-5176"><span class="linenos">5176</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
+</span><span id="L-5177"><a href="#L-5177"><span class="linenos">5177</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5178"><a href="#L-5178"><span class="linenos">5178</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-5179"><a href="#L-5179"><span class="linenos">5179</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-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="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">Dialect</span>
+</span><span id="L-5182"><a href="#L-5182"><span class="linenos">5182</span></a>
+</span><span id="L-5183"><a href="#L-5183"><span class="linenos">5183</span></a> <span class="n">converted</span> <span class="o">=</span> <span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
+</span><span id="L-5184"><a href="#L-5184"><span class="linenos">5184</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="L-5185"><a href="#L-5185"><span class="linenos">5185</span></a>
+</span><span id="L-5186"><a href="#L-5186"><span class="linenos">5186</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span>
+</span><span id="L-5187"><a href="#L-5187"><span class="linenos">5187</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
+</span><span id="L-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">if</span> <span class="n">from_args_list</span><span class="p">:</span>
+</span><span id="L-5190"><a href="#L-5190"><span class="linenos">5190</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="L-5191"><a href="#L-5191"><span class="linenos">5191</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-5192"><a href="#L-5192"><span class="linenos">5192</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-5193"><a href="#L-5193"><span class="linenos">5193</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-5194"><a href="#L-5194"><span class="linenos">5194</span></a>
+</span><span id="L-5195"><a href="#L-5195"><span class="linenos">5195</span></a> <span class="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-5196"><a href="#L-5196"><span class="linenos">5196</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-5197"><a href="#L-5197"><span class="linenos">5197</span></a>
+</span><span id="L-5198"><a href="#L-5198"><span class="linenos">5198</span></a> <span class="k">return</span> <span class="n">function</span>
+</span><span id="L-5199"><a href="#L-5199"><span class="linenos">5199</span></a>
+</span><span id="L-5200"><a href="#L-5200"><span class="linenos">5200</span></a>
+</span><span id="L-5201"><a href="#L-5201"><span class="linenos">5201</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">():</span>
+</span><span id="L-5202"><a href="#L-5202"><span class="linenos">5202</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5203"><a href="#L-5203"><span class="linenos">5203</span></a><span class="sd"> Returns a true Boolean expression.</span>
+</span><span id="L-5204"><a href="#L-5204"><span class="linenos">5204</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5205"><a href="#L-5205"><span class="linenos">5205</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-5206"><a href="#L-5206"><span class="linenos">5206</span></a>
+</span><span id="L-5207"><a href="#L-5207"><span class="linenos">5207</span></a>
+</span><span id="L-5208"><a href="#L-5208"><span class="linenos">5208</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">():</span>
+</span><span id="L-5209"><a href="#L-5209"><span class="linenos">5209</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5210"><a href="#L-5210"><span class="linenos">5210</span></a><span class="sd"> Returns a false Boolean expression.</span>
+</span><span id="L-5211"><a href="#L-5211"><span class="linenos">5211</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5212"><a href="#L-5212"><span class="linenos">5212</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-5213"><a href="#L-5213"><span class="linenos">5213</span></a>
+</span><span id="L-5214"><a href="#L-5214"><span class="linenos">5214</span></a>
+</span><span id="L-5215"><a href="#L-5215"><span class="linenos">5215</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">():</span>
+</span><span id="L-5216"><a href="#L-5216"><span class="linenos">5216</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5217"><a href="#L-5217"><span class="linenos">5217</span></a><span class="sd"> Returns a Null expression.</span>
+</span><span id="L-5218"><a href="#L-5218"><span class="linenos">5218</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5219"><a href="#L-5219"><span class="linenos">5219</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
+</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><span id="L-5222"><a href="#L-5222"><span class="linenos">5222</span></a><span class="c1"># TODO: deprecate this</span>
+</span><span id="L-5223"><a href="#L-5223"><span class="linenos">5223</span></a><span class="n">TRUE</span> <span class="o">=</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-5224"><a href="#L-5224"><span class="linenos">5224</span></a><span class="n">FALSE</span> <span class="o">=</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+</span><span id="L-5225"><a href="#L-5225"><span class="linenos">5225</span></a><span class="n">NULL</span> <span class="o">=</span> <span class="n">Null</span><span class="p">()</span>
</span></pre></div>
@@ -10926,11 +11084,10 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</span><span id="Create-819"><a href="#Create-819"><span class="linenos">819</span></a> <span class="s2">&quot;properties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Create-820"><a href="#Create-820"><span class="linenos">820</span></a> <span class="s2">&quot;replace&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Create-821"><a href="#Create-821"><span class="linenos">821</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="Create-822"><a href="#Create-822"><span class="linenos">822</span></a> <span class="s2">&quot;volatile&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Create-823"><a href="#Create-823"><span class="linenos">823</span></a> <span class="s2">&quot;indexes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Create-824"><a href="#Create-824"><span class="linenos">824</span></a> <span class="s2">&quot;no_schema_binding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Create-825"><a href="#Create-825"><span class="linenos">825</span></a> <span class="s2">&quot;begin&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Create-826"><a href="#Create-826"><span class="linenos">826</span></a> <span class="p">}</span>
+</span><span id="Create-822"><a href="#Create-822"><span class="linenos">822</span></a> <span class="s2">&quot;indexes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Create-823"><a href="#Create-823"><span class="linenos">823</span></a> <span class="s2">&quot;no_schema_binding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Create-824"><a href="#Create-824"><span class="linenos">824</span></a> <span class="s2">&quot;begin&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Create-825"><a href="#Create-825"><span class="linenos">825</span></a> <span class="p">}</span>
</span></pre></div>
@@ -10993,8 +11150,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Describe"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Describe-829"><a href="#Describe-829"><span class="linenos">829</span></a><span class="k">class</span> <span class="nc">Describe</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Describe-830"><a href="#Describe-830"><span class="linenos">830</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="Describe-828"><a href="#Describe-828"><span class="linenos">828</span></a><span class="k">class</span> <span class="nc">Describe</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Describe-829"><a href="#Describe-829"><span class="linenos">829</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -11057,8 +11214,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Pragma"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Pragma-833"><a href="#Pragma-833"><span class="linenos">833</span></a><span class="k">class</span> <span class="nc">Pragma</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Pragma-834"><a href="#Pragma-834"><span class="linenos">834</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Pragma-832"><a href="#Pragma-832"><span class="linenos">832</span></a><span class="k">class</span> <span class="nc">Pragma</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Pragma-833"><a href="#Pragma-833"><span class="linenos">833</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -11121,8 +11278,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Set"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Set-837"><a href="#Set-837"><span class="linenos">837</span></a><span class="k">class</span> <span class="nc">Set</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Set-838"><a href="#Set-838"><span class="linenos">838</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Set-836"><a href="#Set-836"><span class="linenos">836</span></a><span class="k">class</span> <span class="nc">Set</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Set-837"><a href="#Set-837"><span class="linenos">837</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></pre></div>
@@ -11185,14 +11342,14 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#SetItem"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SetItem-841"><a href="#SetItem-841"><span class="linenos">841</span></a><span class="k">class</span> <span class="nc">SetItem</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="SetItem-842"><a href="#SetItem-842"><span class="linenos">842</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="SetItem-843"><a href="#SetItem-843"><span class="linenos">843</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="SetItem-844"><a href="#SetItem-844"><span class="linenos">844</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="SetItem-845"><a href="#SetItem-845"><span class="linenos">845</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="SetItem-846"><a href="#SetItem-846"><span class="linenos">846</span></a> <span class="s2">&quot;collate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># MySQL SET NAMES statement</span>
-</span><span id="SetItem-847"><a href="#SetItem-847"><span class="linenos">847</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="SetItem-848"><a href="#SetItem-848"><span class="linenos">848</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SetItem-840"><a href="#SetItem-840"><span class="linenos">840</span></a><span class="k">class</span> <span class="nc">SetItem</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="SetItem-841"><a href="#SetItem-841"><span class="linenos">841</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="SetItem-842"><a href="#SetItem-842"><span class="linenos">842</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="SetItem-843"><a href="#SetItem-843"><span class="linenos">843</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="SetItem-844"><a href="#SetItem-844"><span class="linenos">844</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="SetItem-845"><a href="#SetItem-845"><span class="linenos">845</span></a> <span class="s2">&quot;collate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># MySQL SET NAMES statement</span>
+</span><span id="SetItem-846"><a href="#SetItem-846"><span class="linenos">846</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="SetItem-847"><a href="#SetItem-847"><span class="linenos">847</span></a> <span class="p">}</span>
</span></pre></div>
@@ -11255,24 +11412,24 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Show"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Show-851"><a href="#Show-851"><span class="linenos">851</span></a><span class="k">class</span> <span class="nc">Show</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Show-852"><a href="#Show-852"><span class="linenos">852</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Show-853"><a href="#Show-853"><span class="linenos">853</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="Show-854"><a href="#Show-854"><span class="linenos">854</span></a> <span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Show-855"><a href="#Show-855"><span class="linenos">855</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="Show-856"><a href="#Show-856"><span class="linenos">856</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="Show-857"><a href="#Show-857"><span class="linenos">857</span></a> <span class="s2">&quot;like&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Show-858"><a href="#Show-858"><span class="linenos">858</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="Show-859"><a href="#Show-859"><span class="linenos">859</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="Show-860"><a href="#Show-860"><span class="linenos">860</span></a> <span class="s2">&quot;full&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Show-861"><a href="#Show-861"><span class="linenos">861</span></a> <span class="s2">&quot;mutex&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Show-862"><a href="#Show-862"><span class="linenos">862</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="Show-863"><a href="#Show-863"><span class="linenos">863</span></a> <span class="s2">&quot;channel&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Show-864"><a href="#Show-864"><span class="linenos">864</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="Show-865"><a href="#Show-865"><span class="linenos">865</span></a> <span class="s2">&quot;log&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Show-866"><a href="#Show-866"><span class="linenos">866</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="Show-867"><a href="#Show-867"><span class="linenos">867</span></a> <span class="s2">&quot;types&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Show-868"><a href="#Show-868"><span class="linenos">868</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Show-850"><a href="#Show-850"><span class="linenos">850</span></a><span class="k">class</span> <span class="nc">Show</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Show-851"><a href="#Show-851"><span class="linenos">851</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Show-852"><a href="#Show-852"><span class="linenos">852</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="Show-853"><a href="#Show-853"><span class="linenos">853</span></a> <span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Show-854"><a href="#Show-854"><span class="linenos">854</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="Show-855"><a href="#Show-855"><span class="linenos">855</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="Show-856"><a href="#Show-856"><span class="linenos">856</span></a> <span class="s2">&quot;like&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Show-857"><a href="#Show-857"><span class="linenos">857</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="Show-858"><a href="#Show-858"><span class="linenos">858</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="Show-859"><a href="#Show-859"><span class="linenos">859</span></a> <span class="s2">&quot;full&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Show-860"><a href="#Show-860"><span class="linenos">860</span></a> <span class="s2">&quot;mutex&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Show-861"><a href="#Show-861"><span class="linenos">861</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="Show-862"><a href="#Show-862"><span class="linenos">862</span></a> <span class="s2">&quot;channel&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Show-863"><a href="#Show-863"><span class="linenos">863</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="Show-864"><a href="#Show-864"><span class="linenos">864</span></a> <span class="s2">&quot;log&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Show-865"><a href="#Show-865"><span class="linenos">865</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="Show-866"><a href="#Show-866"><span class="linenos">866</span></a> <span class="s2">&quot;types&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Show-867"><a href="#Show-867"><span class="linenos">867</span></a> <span class="p">}</span>
</span></pre></div>
@@ -11335,8 +11492,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#UserDefinedFunction"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UserDefinedFunction-871"><a href="#UserDefinedFunction-871"><span class="linenos">871</span></a><span class="k">class</span> <span class="nc">UserDefinedFunction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="UserDefinedFunction-872"><a href="#UserDefinedFunction-872"><span class="linenos">872</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;wrapped&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="UserDefinedFunction-870"><a href="#UserDefinedFunction-870"><span class="linenos">870</span></a><span class="k">class</span> <span class="nc">UserDefinedFunction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="UserDefinedFunction-871"><a href="#UserDefinedFunction-871"><span class="linenos">871</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;wrapped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -11399,8 +11556,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#CharacterSet"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CharacterSet-875"><a href="#CharacterSet-875"><span class="linenos">875</span></a><span class="k">class</span> <span class="nc">CharacterSet</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="CharacterSet-876"><a href="#CharacterSet-876"><span class="linenos">876</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="CharacterSet-874"><a href="#CharacterSet-874"><span class="linenos">874</span></a><span class="k">class</span> <span class="nc">CharacterSet</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="CharacterSet-875"><a href="#CharacterSet-875"><span class="linenos">875</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -11463,12 +11620,12 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#With"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="With-879"><a href="#With-879"><span class="linenos">879</span></a><span class="k">class</span> <span class="nc">With</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="With-880"><a href="#With-880"><span class="linenos">880</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;recursive&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="With-881"><a href="#With-881"><span class="linenos">881</span></a>
-</span><span id="With-882"><a href="#With-882"><span class="linenos">882</span></a> <span class="nd">@property</span>
-</span><span id="With-883"><a href="#With-883"><span class="linenos">883</span></a> <span class="k">def</span> <span class="nf">recursive</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="With-884"><a href="#With-884"><span class="linenos">884</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;recursive&quot;</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="With-878"><a href="#With-878"><span class="linenos">878</span></a><span class="k">class</span> <span class="nc">With</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="With-879"><a href="#With-879"><span class="linenos">879</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;recursive&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="With-880"><a href="#With-880"><span class="linenos">880</span></a>
+</span><span id="With-881"><a href="#With-881"><span class="linenos">881</span></a> <span class="nd">@property</span>
+</span><span id="With-882"><a href="#With-882"><span class="linenos">882</span></a> <span class="k">def</span> <span class="nf">recursive</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="With-883"><a href="#With-883"><span class="linenos">883</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;recursive&quot;</span><span class="p">))</span>
</span></pre></div>
@@ -11531,8 +11688,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#WithinGroup"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WithinGroup-887"><a href="#WithinGroup-887"><span class="linenos">887</span></a><span class="k">class</span> <span class="nc">WithinGroup</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="WithinGroup-888"><a href="#WithinGroup-888"><span class="linenos">888</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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="WithinGroup-886"><a href="#WithinGroup-886"><span class="linenos">886</span></a><span class="k">class</span> <span class="nc">WithinGroup</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="WithinGroup-887"><a href="#WithinGroup-887"><span class="linenos">887</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -11595,8 +11752,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#CTE"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CTE-891"><a href="#CTE-891"><span class="linenos">891</span></a><span class="k">class</span> <span class="nc">CTE</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">):</span>
-</span><span id="CTE-892"><a href="#CTE-892"><span class="linenos">892</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CTE-890"><a href="#CTE-890"><span class="linenos">890</span></a><span class="k">class</span> <span class="nc">CTE</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">):</span>
+</span><span id="CTE-891"><a href="#CTE-891"><span class="linenos">891</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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">True</span><span class="p">}</span>
</span></pre></div>
@@ -11659,12 +11816,12 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#TableAlias"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TableAlias-895"><a href="#TableAlias-895"><span class="linenos">895</span></a><span class="k">class</span> <span class="nc">TableAlias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="TableAlias-896"><a href="#TableAlias-896"><span class="linenos">896</span></a> <span class="n">arg_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;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="TableAlias-897"><a href="#TableAlias-897"><span class="linenos">897</span></a>
-</span><span id="TableAlias-898"><a href="#TableAlias-898"><span class="linenos">898</span></a> <span class="nd">@property</span>
-</span><span id="TableAlias-899"><a href="#TableAlias-899"><span class="linenos">899</span></a> <span class="k">def</span> <span class="nf">columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="TableAlias-900"><a href="#TableAlias-900"><span class="linenos">900</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;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TableAlias-894"><a href="#TableAlias-894"><span class="linenos">894</span></a><span class="k">class</span> <span class="nc">TableAlias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="TableAlias-895"><a href="#TableAlias-895"><span class="linenos">895</span></a> <span class="n">arg_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;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="TableAlias-896"><a href="#TableAlias-896"><span class="linenos">896</span></a>
+</span><span id="TableAlias-897"><a href="#TableAlias-897"><span class="linenos">897</span></a> <span class="nd">@property</span>
+</span><span id="TableAlias-898"><a href="#TableAlias-898"><span class="linenos">898</span></a> <span class="k">def</span> <span class="nf">columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="TableAlias-899"><a href="#TableAlias-899"><span class="linenos">899</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;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
</span></pre></div>
@@ -11727,8 +11884,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#BitString"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitString-903"><a href="#BitString-903"><span class="linenos">903</span></a><span class="k">class</span> <span class="nc">BitString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="BitString-904"><a href="#BitString-904"><span class="linenos">904</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitString-902"><a href="#BitString-902"><span class="linenos">902</span></a><span class="k">class</span> <span class="nc">BitString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="BitString-903"><a href="#BitString-903"><span class="linenos">903</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -11797,8 +11954,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#HexString"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="HexString-907"><a href="#HexString-907"><span class="linenos">907</span></a><span class="k">class</span> <span class="nc">HexString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="HexString-908"><a href="#HexString-908"><span class="linenos">908</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="HexString-906"><a href="#HexString-906"><span class="linenos">906</span></a><span class="k">class</span> <span class="nc">HexString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="HexString-907"><a href="#HexString-907"><span class="linenos">907</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -11867,8 +12024,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#ByteString"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ByteString-911"><a href="#ByteString-911"><span class="linenos">911</span></a><span class="k">class</span> <span class="nc">ByteString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="ByteString-912"><a href="#ByteString-912"><span class="linenos">912</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ByteString-910"><a href="#ByteString-910"><span class="linenos">910</span></a><span class="k">class</span> <span class="nc">ByteString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="ByteString-911"><a href="#ByteString-911"><span class="linenos">911</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -11937,41 +12094,41 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Column"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Column-915"><a href="#Column-915"><span class="linenos">915</span></a><span class="k">class</span> <span class="nc">Column</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Column-916"><a href="#Column-916"><span class="linenos">916</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</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 class="s2">&quot;db&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;join_mark&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Column-917"><a href="#Column-917"><span class="linenos">917</span></a>
-</span><span id="Column-918"><a href="#Column-918"><span class="linenos">918</span></a> <span class="nd">@property</span>
-</span><span id="Column-919"><a href="#Column-919"><span class="linenos">919</span></a> <span class="k">def</span> <span class="nf">table</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="Column-920"><a href="#Column-920"><span class="linenos">920</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;table&quot;</span><span class="p">)</span>
-</span><span id="Column-921"><a href="#Column-921"><span class="linenos">921</span></a>
-</span><span id="Column-922"><a href="#Column-922"><span class="linenos">922</span></a> <span class="nd">@property</span>
-</span><span id="Column-923"><a href="#Column-923"><span class="linenos">923</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="Column-924"><a href="#Column-924"><span class="linenos">924</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="Column-925"><a href="#Column-925"><span class="linenos">925</span></a>
-</span><span id="Column-926"><a href="#Column-926"><span class="linenos">926</span></a> <span class="nd">@property</span>
-</span><span id="Column-927"><a href="#Column-927"><span class="linenos">927</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="Column-928"><a href="#Column-928"><span class="linenos">928</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="Column-929"><a href="#Column-929"><span class="linenos">929</span></a>
-</span><span id="Column-930"><a href="#Column-930"><span class="linenos">930</span></a> <span class="nd">@property</span>
-</span><span id="Column-931"><a href="#Column-931"><span class="linenos">931</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="Column-932"><a href="#Column-932"><span class="linenos">932</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
-</span><span id="Column-933"><a href="#Column-933"><span class="linenos">933</span></a>
-</span><span id="Column-934"><a href="#Column-934"><span class="linenos">934</span></a> <span class="nd">@property</span>
-</span><span id="Column-935"><a href="#Column-935"><span class="linenos">935</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">Identifier</span><span class="p">]:</span>
-</span><span id="Column-936"><a href="#Column-936"><span class="linenos">936</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a column in order catalog, db, table, name.&quot;&quot;&quot;</span>
-</span><span id="Column-937"><a href="#Column-937"><span class="linenos">937</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">part</span> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="nb">reversed</span><span class="p">(</span><span class="nb">list</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">values</span><span class="p">()))</span> <span class="k">if</span> <span class="n">part</span><span class="p">]</span>
-</span><span id="Column-938"><a href="#Column-938"><span class="linenos">938</span></a>
-</span><span id="Column-939"><a href="#Column-939"><span class="linenos">939</span></a> <span class="k">def</span> <span class="nf">to_dot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
-</span><span id="Column-940"><a href="#Column-940"><span class="linenos">940</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Converts the column into a dot expression.&quot;&quot;&quot;</span>
-</span><span id="Column-941"><a href="#Column-941"><span class="linenos">941</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="Column-942"><a href="#Column-942"><span class="linenos">942</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Column-943"><a href="#Column-943"><span class="linenos">943</span></a>
-</span><span id="Column-944"><a href="#Column-944"><span class="linenos">944</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
-</span><span id="Column-945"><a href="#Column-945"><span class="linenos">945</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
-</span><span id="Column-946"><a href="#Column-946"><span class="linenos">946</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parent</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="Column-947"><a href="#Column-947"><span class="linenos">947</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Column-948"><a href="#Column-948"><span class="linenos">948</span></a>
-</span><span id="Column-949"><a href="#Column-949"><span class="linenos">949</span></a> <span class="k">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Column-914"><a href="#Column-914"><span class="linenos">914</span></a><span class="k">class</span> <span class="nc">Column</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Column-915"><a href="#Column-915"><span class="linenos">915</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</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 class="s2">&quot;db&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;join_mark&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Column-916"><a href="#Column-916"><span class="linenos">916</span></a>
+</span><span id="Column-917"><a href="#Column-917"><span class="linenos">917</span></a> <span class="nd">@property</span>
+</span><span id="Column-918"><a href="#Column-918"><span class="linenos">918</span></a> <span class="k">def</span> <span class="nf">table</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="Column-919"><a href="#Column-919"><span class="linenos">919</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;table&quot;</span><span class="p">)</span>
+</span><span id="Column-920"><a href="#Column-920"><span class="linenos">920</span></a>
+</span><span id="Column-921"><a href="#Column-921"><span class="linenos">921</span></a> <span class="nd">@property</span>
+</span><span id="Column-922"><a href="#Column-922"><span class="linenos">922</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="Column-923"><a href="#Column-923"><span class="linenos">923</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="Column-924"><a href="#Column-924"><span class="linenos">924</span></a>
+</span><span id="Column-925"><a href="#Column-925"><span class="linenos">925</span></a> <span class="nd">@property</span>
+</span><span id="Column-926"><a href="#Column-926"><span class="linenos">926</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="Column-927"><a href="#Column-927"><span class="linenos">927</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="Column-928"><a href="#Column-928"><span class="linenos">928</span></a>
+</span><span id="Column-929"><a href="#Column-929"><span class="linenos">929</span></a> <span class="nd">@property</span>
+</span><span id="Column-930"><a href="#Column-930"><span class="linenos">930</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="Column-931"><a href="#Column-931"><span class="linenos">931</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+</span><span id="Column-932"><a href="#Column-932"><span class="linenos">932</span></a>
+</span><span id="Column-933"><a href="#Column-933"><span class="linenos">933</span></a> <span class="nd">@property</span>
+</span><span id="Column-934"><a href="#Column-934"><span class="linenos">934</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">Identifier</span><span class="p">]:</span>
+</span><span id="Column-935"><a href="#Column-935"><span class="linenos">935</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a column in order catalog, db, table, name.&quot;&quot;&quot;</span>
+</span><span id="Column-936"><a href="#Column-936"><span class="linenos">936</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">part</span> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="nb">reversed</span><span class="p">(</span><span class="nb">list</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">values</span><span class="p">()))</span> <span class="k">if</span> <span class="n">part</span><span class="p">]</span>
+</span><span id="Column-937"><a href="#Column-937"><span class="linenos">937</span></a>
+</span><span id="Column-938"><a href="#Column-938"><span class="linenos">938</span></a> <span class="k">def</span> <span class="nf">to_dot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="Column-939"><a href="#Column-939"><span class="linenos">939</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Converts the column into a dot expression.&quot;&quot;&quot;</span>
+</span><span id="Column-940"><a href="#Column-940"><span class="linenos">940</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="Column-941"><a href="#Column-941"><span class="linenos">941</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Column-942"><a href="#Column-942"><span class="linenos">942</span></a>
+</span><span id="Column-943"><a href="#Column-943"><span class="linenos">943</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
+</span><span id="Column-944"><a href="#Column-944"><span class="linenos">944</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
+</span><span id="Column-945"><a href="#Column-945"><span class="linenos">945</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parent</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="Column-946"><a href="#Column-946"><span class="linenos">946</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Column-947"><a href="#Column-947"><span class="linenos">947</span></a>
+</span><span id="Column-948"><a href="#Column-948"><span class="linenos">948</span></a> <span class="k">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
</span></pre></div>
@@ -12031,17 +12188,17 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Column.to_dot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Column.to_dot-939"><a href="#Column.to_dot-939"><span class="linenos">939</span></a> <span class="k">def</span> <span class="nf">to_dot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
-</span><span id="Column.to_dot-940"><a href="#Column.to_dot-940"><span class="linenos">940</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Converts the column into a dot expression.&quot;&quot;&quot;</span>
-</span><span id="Column.to_dot-941"><a href="#Column.to_dot-941"><span class="linenos">941</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="Column.to_dot-942"><a href="#Column.to_dot-942"><span class="linenos">942</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Column.to_dot-943"><a href="#Column.to_dot-943"><span class="linenos">943</span></a>
-</span><span id="Column.to_dot-944"><a href="#Column.to_dot-944"><span class="linenos">944</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
-</span><span id="Column.to_dot-945"><a href="#Column.to_dot-945"><span class="linenos">945</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
-</span><span id="Column.to_dot-946"><a href="#Column.to_dot-946"><span class="linenos">946</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parent</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="Column.to_dot-947"><a href="#Column.to_dot-947"><span class="linenos">947</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Column.to_dot-948"><a href="#Column.to_dot-948"><span class="linenos">948</span></a>
-</span><span id="Column.to_dot-949"><a href="#Column.to_dot-949"><span class="linenos">949</span></a> <span class="k">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Column.to_dot-938"><a href="#Column.to_dot-938"><span class="linenos">938</span></a> <span class="k">def</span> <span class="nf">to_dot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="Column.to_dot-939"><a href="#Column.to_dot-939"><span class="linenos">939</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Converts the column into a dot expression.&quot;&quot;&quot;</span>
+</span><span id="Column.to_dot-940"><a href="#Column.to_dot-940"><span class="linenos">940</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="Column.to_dot-941"><a href="#Column.to_dot-941"><span class="linenos">941</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Column.to_dot-942"><a href="#Column.to_dot-942"><span class="linenos">942</span></a>
+</span><span id="Column.to_dot-943"><a href="#Column.to_dot-943"><span class="linenos">943</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
+</span><span id="Column.to_dot-944"><a href="#Column.to_dot-944"><span class="linenos">944</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
+</span><span id="Column.to_dot-945"><a href="#Column.to_dot-945"><span class="linenos">945</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parent</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="Column.to_dot-946"><a href="#Column.to_dot-946"><span class="linenos">946</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Column.to_dot-947"><a href="#Column.to_dot-947"><span class="linenos">947</span></a>
+</span><span id="Column.to_dot-948"><a href="#Column.to_dot-948"><span class="linenos">948</span></a> <span class="k">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
</span></pre></div>
@@ -12112,8 +12269,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#ColumnPosition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnPosition-952"><a href="#ColumnPosition-952"><span class="linenos">952</span></a><span class="k">class</span> <span class="nc">ColumnPosition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="ColumnPosition-953"><a href="#ColumnPosition-953"><span class="linenos">953</span></a> <span class="n">arg_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;position&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="ColumnPosition-951"><a href="#ColumnPosition-951"><span class="linenos">951</span></a><span class="k">class</span> <span class="nc">ColumnPosition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="ColumnPosition-952"><a href="#ColumnPosition-952"><span class="linenos">952</span></a> <span class="n">arg_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;position&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -12176,14 +12333,14 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#ColumnDef"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnDef-956"><a href="#ColumnDef-956"><span class="linenos">956</span></a><span class="k">class</span> <span class="nc">ColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="ColumnDef-957"><a href="#ColumnDef-957"><span class="linenos">957</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="ColumnDef-958"><a href="#ColumnDef-958"><span class="linenos">958</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="ColumnDef-959"><a href="#ColumnDef-959"><span class="linenos">959</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="ColumnDef-960"><a href="#ColumnDef-960"><span class="linenos">960</span></a> <span class="s2">&quot;constraints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="ColumnDef-961"><a href="#ColumnDef-961"><span class="linenos">961</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="ColumnDef-962"><a href="#ColumnDef-962"><span class="linenos">962</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="ColumnDef-963"><a href="#ColumnDef-963"><span class="linenos">963</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnDef-955"><a href="#ColumnDef-955"><span class="linenos">955</span></a><span class="k">class</span> <span class="nc">ColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="ColumnDef-956"><a href="#ColumnDef-956"><span class="linenos">956</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="ColumnDef-957"><a href="#ColumnDef-957"><span class="linenos">957</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="ColumnDef-958"><a href="#ColumnDef-958"><span class="linenos">958</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="ColumnDef-959"><a href="#ColumnDef-959"><span class="linenos">959</span></a> <span class="s2">&quot;constraints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="ColumnDef-960"><a href="#ColumnDef-960"><span class="linenos">960</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="ColumnDef-961"><a href="#ColumnDef-961"><span class="linenos">961</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="ColumnDef-962"><a href="#ColumnDef-962"><span class="linenos">962</span></a> <span class="p">}</span>
</span></pre></div>
@@ -12246,15 +12403,15 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#AlterColumn"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AlterColumn-966"><a href="#AlterColumn-966"><span class="linenos">966</span></a><span class="k">class</span> <span class="nc">AlterColumn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="AlterColumn-967"><a href="#AlterColumn-967"><span class="linenos">967</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="AlterColumn-968"><a href="#AlterColumn-968"><span class="linenos">968</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="AlterColumn-969"><a href="#AlterColumn-969"><span class="linenos">969</span></a> <span class="s2">&quot;dtype&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="AlterColumn-970"><a href="#AlterColumn-970"><span class="linenos">970</span></a> <span class="s2">&quot;collate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="AlterColumn-971"><a href="#AlterColumn-971"><span class="linenos">971</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="AlterColumn-972"><a href="#AlterColumn-972"><span class="linenos">972</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="AlterColumn-973"><a href="#AlterColumn-973"><span class="linenos">973</span></a> <span class="s2">&quot;drop&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="AlterColumn-974"><a href="#AlterColumn-974"><span class="linenos">974</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AlterColumn-965"><a href="#AlterColumn-965"><span class="linenos">965</span></a><span class="k">class</span> <span class="nc">AlterColumn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="AlterColumn-966"><a href="#AlterColumn-966"><span class="linenos">966</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="AlterColumn-967"><a href="#AlterColumn-967"><span class="linenos">967</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="AlterColumn-968"><a href="#AlterColumn-968"><span class="linenos">968</span></a> <span class="s2">&quot;dtype&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="AlterColumn-969"><a href="#AlterColumn-969"><span class="linenos">969</span></a> <span class="s2">&quot;collate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="AlterColumn-970"><a href="#AlterColumn-970"><span class="linenos">970</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="AlterColumn-971"><a href="#AlterColumn-971"><span class="linenos">971</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="AlterColumn-972"><a href="#AlterColumn-972"><span class="linenos">972</span></a> <span class="s2">&quot;drop&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="AlterColumn-973"><a href="#AlterColumn-973"><span class="linenos">973</span></a> <span class="p">}</span>
</span></pre></div>
@@ -12317,8 +12474,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#RenameTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RenameTable-977"><a href="#RenameTable-977"><span class="linenos">977</span></a><span class="k">class</span> <span class="nc">RenameTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="RenameTable-978"><a href="#RenameTable-978"><span class="linenos">978</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RenameTable-976"><a href="#RenameTable-976"><span class="linenos">976</span></a><span class="k">class</span> <span class="nc">RenameTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="RenameTable-977"><a href="#RenameTable-977"><span class="linenos">977</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -12381,8 +12538,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#SetTag"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SetTag-981"><a href="#SetTag-981"><span class="linenos">981</span></a><span class="k">class</span> <span class="nc">SetTag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="SetTag-982"><a href="#SetTag-982"><span class="linenos">982</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;unset&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="SetTag-980"><a href="#SetTag-980"><span class="linenos">980</span></a><span class="k">class</span> <span class="nc">SetTag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="SetTag-981"><a href="#SetTag-981"><span class="linenos">981</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;unset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -12445,8 +12602,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Comment"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Comment-985"><a href="#Comment-985"><span class="linenos">985</span></a><span class="k">class</span> <span class="nc">Comment</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Comment-986"><a href="#Comment-986"><span class="linenos">986</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 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="Comment-984"><a href="#Comment-984"><span class="linenos">984</span></a><span class="k">class</span> <span class="nc">Comment</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Comment-985"><a href="#Comment-985"><span class="linenos">985</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -12509,8 +12666,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#ColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnConstraint-989"><a href="#ColumnConstraint-989"><span class="linenos">989</span></a><span class="k">class</span> <span class="nc">ColumnConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="ColumnConstraint-990"><a href="#ColumnConstraint-990"><span class="linenos">990</span></a> <span class="n">arg_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">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnConstraint-988"><a href="#ColumnConstraint-988"><span class="linenos">988</span></a><span class="k">class</span> <span class="nc">ColumnConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="ColumnConstraint-989"><a href="#ColumnConstraint-989"><span class="linenos">989</span></a> <span class="n">arg_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">True</span><span class="p">}</span>
</span></pre></div>
@@ -12573,8 +12730,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#ColumnConstraintKind"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnConstraintKind-993"><a href="#ColumnConstraintKind-993"><span class="linenos">993</span></a><span class="k">class</span> <span class="nc">ColumnConstraintKind</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="ColumnConstraintKind-994"><a href="#ColumnConstraintKind-994"><span class="linenos">994</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnConstraintKind-992"><a href="#ColumnConstraintKind-992"><span class="linenos">992</span></a><span class="k">class</span> <span class="nc">ColumnConstraintKind</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="ColumnConstraintKind-993"><a href="#ColumnConstraintKind-993"><span class="linenos">993</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -12637,8 +12794,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#AutoIncrementColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AutoIncrementColumnConstraint-997"><a href="#AutoIncrementColumnConstraint-997"><span class="linenos">997</span></a><span class="k">class</span> <span class="nc">AutoIncrementColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="AutoIncrementColumnConstraint-998"><a href="#AutoIncrementColumnConstraint-998"><span class="linenos">998</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AutoIncrementColumnConstraint-996"><a href="#AutoIncrementColumnConstraint-996"><span class="linenos">996</span></a><span class="k">class</span> <span class="nc">AutoIncrementColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="AutoIncrementColumnConstraint-997"><a href="#AutoIncrementColumnConstraint-997"><span class="linenos">997</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -12701,8 +12858,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#CaseSpecificColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CaseSpecificColumnConstraint-1001"><a href="#CaseSpecificColumnConstraint-1001"><span class="linenos">1001</span></a><span class="k">class</span> <span class="nc">CaseSpecificColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="CaseSpecificColumnConstraint-1002"><a href="#CaseSpecificColumnConstraint-1002"><span class="linenos">1002</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;not_&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="CaseSpecificColumnConstraint-1000"><a href="#CaseSpecificColumnConstraint-1000"><span class="linenos">1000</span></a><span class="k">class</span> <span class="nc">CaseSpecificColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="CaseSpecificColumnConstraint-1001"><a href="#CaseSpecificColumnConstraint-1001"><span class="linenos">1001</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;not_&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -12765,8 +12922,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#CharacterSetColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CharacterSetColumnConstraint-1005"><a href="#CharacterSetColumnConstraint-1005"><span class="linenos">1005</span></a><span class="k">class</span> <span class="nc">CharacterSetColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="CharacterSetColumnConstraint-1006"><a href="#CharacterSetColumnConstraint-1006"><span class="linenos">1006</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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="CharacterSetColumnConstraint-1004"><a href="#CharacterSetColumnConstraint-1004"><span class="linenos">1004</span></a><span class="k">class</span> <span class="nc">CharacterSetColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="CharacterSetColumnConstraint-1005"><a href="#CharacterSetColumnConstraint-1005"><span class="linenos">1005</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -12829,8 +12986,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#CheckColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CheckColumnConstraint-1009"><a href="#CheckColumnConstraint-1009"><span class="linenos">1009</span></a><span class="k">class</span> <span class="nc">CheckColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="CheckColumnConstraint-1010"><a href="#CheckColumnConstraint-1010"><span class="linenos">1010</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CheckColumnConstraint-1008"><a href="#CheckColumnConstraint-1008"><span class="linenos">1008</span></a><span class="k">class</span> <span class="nc">CheckColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="CheckColumnConstraint-1009"><a href="#CheckColumnConstraint-1009"><span class="linenos">1009</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -12893,8 +13050,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#CollateColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CollateColumnConstraint-1013"><a href="#CollateColumnConstraint-1013"><span class="linenos">1013</span></a><span class="k">class</span> <span class="nc">CollateColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="CollateColumnConstraint-1014"><a href="#CollateColumnConstraint-1014"><span class="linenos">1014</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CollateColumnConstraint-1012"><a href="#CollateColumnConstraint-1012"><span class="linenos">1012</span></a><span class="k">class</span> <span class="nc">CollateColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="CollateColumnConstraint-1013"><a href="#CollateColumnConstraint-1013"><span class="linenos">1013</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -12957,8 +13114,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#CommentColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CommentColumnConstraint-1017"><a href="#CommentColumnConstraint-1017"><span class="linenos">1017</span></a><span class="k">class</span> <span class="nc">CommentColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="CommentColumnConstraint-1018"><a href="#CommentColumnConstraint-1018"><span class="linenos">1018</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CommentColumnConstraint-1016"><a href="#CommentColumnConstraint-1016"><span class="linenos">1016</span></a><span class="k">class</span> <span class="nc">CommentColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="CommentColumnConstraint-1017"><a href="#CommentColumnConstraint-1017"><span class="linenos">1017</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -13021,8 +13178,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#CompressColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CompressColumnConstraint-1021"><a href="#CompressColumnConstraint-1021"><span class="linenos">1021</span></a><span class="k">class</span> <span class="nc">CompressColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="CompressColumnConstraint-1022"><a href="#CompressColumnConstraint-1022"><span class="linenos">1022</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CompressColumnConstraint-1020"><a href="#CompressColumnConstraint-1020"><span class="linenos">1020</span></a><span class="k">class</span> <span class="nc">CompressColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="CompressColumnConstraint-1021"><a href="#CompressColumnConstraint-1021"><span class="linenos">1021</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -13085,8 +13242,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#DateFormatColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateFormatColumnConstraint-1025"><a href="#DateFormatColumnConstraint-1025"><span class="linenos">1025</span></a><span class="k">class</span> <span class="nc">DateFormatColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="DateFormatColumnConstraint-1026"><a href="#DateFormatColumnConstraint-1026"><span class="linenos">1026</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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="DateFormatColumnConstraint-1024"><a href="#DateFormatColumnConstraint-1024"><span class="linenos">1024</span></a><span class="k">class</span> <span class="nc">DateFormatColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="DateFormatColumnConstraint-1025"><a href="#DateFormatColumnConstraint-1025"><span class="linenos">1025</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -13149,8 +13306,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#DefaultColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DefaultColumnConstraint-1029"><a href="#DefaultColumnConstraint-1029"><span class="linenos">1029</span></a><span class="k">class</span> <span class="nc">DefaultColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="DefaultColumnConstraint-1030"><a href="#DefaultColumnConstraint-1030"><span class="linenos">1030</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DefaultColumnConstraint-1028"><a href="#DefaultColumnConstraint-1028"><span class="linenos">1028</span></a><span class="k">class</span> <span class="nc">DefaultColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="DefaultColumnConstraint-1029"><a href="#DefaultColumnConstraint-1029"><span class="linenos">1029</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -13213,8 +13370,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#EncodeColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="EncodeColumnConstraint-1033"><a href="#EncodeColumnConstraint-1033"><span class="linenos">1033</span></a><span class="k">class</span> <span class="nc">EncodeColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="EncodeColumnConstraint-1034"><a href="#EncodeColumnConstraint-1034"><span class="linenos">1034</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="EncodeColumnConstraint-1032"><a href="#EncodeColumnConstraint-1032"><span class="linenos">1032</span></a><span class="k">class</span> <span class="nc">EncodeColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="EncodeColumnConstraint-1033"><a href="#EncodeColumnConstraint-1033"><span class="linenos">1033</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -13277,16 +13434,16 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#GeneratedAsIdentityColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GeneratedAsIdentityColumnConstraint-1037"><a href="#GeneratedAsIdentityColumnConstraint-1037"><span class="linenos">1037</span></a><span class="k">class</span> <span class="nc">GeneratedAsIdentityColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="GeneratedAsIdentityColumnConstraint-1038"><a href="#GeneratedAsIdentityColumnConstraint-1038"><span class="linenos">1038</span></a> <span class="c1"># this: True -&gt; ALWAYS, this: False -&gt; BY DEFAULT</span>
-</span><span id="GeneratedAsIdentityColumnConstraint-1039"><a href="#GeneratedAsIdentityColumnConstraint-1039"><span class="linenos">1039</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="GeneratedAsIdentityColumnConstraint-1040"><a href="#GeneratedAsIdentityColumnConstraint-1040"><span class="linenos">1040</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="GeneratedAsIdentityColumnConstraint-1041"><a href="#GeneratedAsIdentityColumnConstraint-1041"><span class="linenos">1041</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="GeneratedAsIdentityColumnConstraint-1042"><a href="#GeneratedAsIdentityColumnConstraint-1042"><span class="linenos">1042</span></a> <span class="s2">&quot;increment&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="GeneratedAsIdentityColumnConstraint-1043"><a href="#GeneratedAsIdentityColumnConstraint-1043"><span class="linenos">1043</span></a> <span class="s2">&quot;minvalue&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="GeneratedAsIdentityColumnConstraint-1044"><a href="#GeneratedAsIdentityColumnConstraint-1044"><span class="linenos">1044</span></a> <span class="s2">&quot;maxvalue&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="GeneratedAsIdentityColumnConstraint-1045"><a href="#GeneratedAsIdentityColumnConstraint-1045"><span class="linenos">1045</span></a> <span class="s2">&quot;cycle&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="GeneratedAsIdentityColumnConstraint-1046"><a href="#GeneratedAsIdentityColumnConstraint-1046"><span class="linenos">1046</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GeneratedAsIdentityColumnConstraint-1036"><a href="#GeneratedAsIdentityColumnConstraint-1036"><span class="linenos">1036</span></a><span class="k">class</span> <span class="nc">GeneratedAsIdentityColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="GeneratedAsIdentityColumnConstraint-1037"><a href="#GeneratedAsIdentityColumnConstraint-1037"><span class="linenos">1037</span></a> <span class="c1"># this: True -&gt; ALWAYS, this: False -&gt; BY DEFAULT</span>
+</span><span id="GeneratedAsIdentityColumnConstraint-1038"><a href="#GeneratedAsIdentityColumnConstraint-1038"><span class="linenos">1038</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="GeneratedAsIdentityColumnConstraint-1039"><a href="#GeneratedAsIdentityColumnConstraint-1039"><span class="linenos">1039</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="GeneratedAsIdentityColumnConstraint-1040"><a href="#GeneratedAsIdentityColumnConstraint-1040"><span class="linenos">1040</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="GeneratedAsIdentityColumnConstraint-1041"><a href="#GeneratedAsIdentityColumnConstraint-1041"><span class="linenos">1041</span></a> <span class="s2">&quot;increment&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="GeneratedAsIdentityColumnConstraint-1042"><a href="#GeneratedAsIdentityColumnConstraint-1042"><span class="linenos">1042</span></a> <span class="s2">&quot;minvalue&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="GeneratedAsIdentityColumnConstraint-1043"><a href="#GeneratedAsIdentityColumnConstraint-1043"><span class="linenos">1043</span></a> <span class="s2">&quot;maxvalue&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="GeneratedAsIdentityColumnConstraint-1044"><a href="#GeneratedAsIdentityColumnConstraint-1044"><span class="linenos">1044</span></a> <span class="s2">&quot;cycle&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="GeneratedAsIdentityColumnConstraint-1045"><a href="#GeneratedAsIdentityColumnConstraint-1045"><span class="linenos">1045</span></a> <span class="p">}</span>
</span></pre></div>
@@ -13349,8 +13506,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#InlineLengthColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="InlineLengthColumnConstraint-1049"><a href="#InlineLengthColumnConstraint-1049"><span class="linenos">1049</span></a><span class="k">class</span> <span class="nc">InlineLengthColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="InlineLengthColumnConstraint-1050"><a href="#InlineLengthColumnConstraint-1050"><span class="linenos">1050</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="InlineLengthColumnConstraint-1048"><a href="#InlineLengthColumnConstraint-1048"><span class="linenos">1048</span></a><span class="k">class</span> <span class="nc">InlineLengthColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="InlineLengthColumnConstraint-1049"><a href="#InlineLengthColumnConstraint-1049"><span class="linenos">1049</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -13413,8 +13570,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#NotNullColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NotNullColumnConstraint-1053"><a href="#NotNullColumnConstraint-1053"><span class="linenos">1053</span></a><span class="k">class</span> <span class="nc">NotNullColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="NotNullColumnConstraint-1054"><a href="#NotNullColumnConstraint-1054"><span class="linenos">1054</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;allow_null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NotNullColumnConstraint-1052"><a href="#NotNullColumnConstraint-1052"><span class="linenos">1052</span></a><span class="k">class</span> <span class="nc">NotNullColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="NotNullColumnConstraint-1053"><a href="#NotNullColumnConstraint-1053"><span class="linenos">1053</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;allow_null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -13466,6 +13623,70 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</dl>
</div>
</section>
+ <section id="OnUpdateColumnConstraint">
+ <input id="OnUpdateColumnConstraint-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">OnUpdateColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
+
+ <label class="view-source-button" for="OnUpdateColumnConstraint-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#OnUpdateColumnConstraint"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OnUpdateColumnConstraint-1057"><a href="#OnUpdateColumnConstraint-1057"><span class="linenos">1057</span></a><span class="k">class</span> <span class="nc">OnUpdateColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="OnUpdateColumnConstraint-1058"><a href="#OnUpdateColumnConstraint-1058"><span class="linenos">1058</span></a> <span class="k">pass</span>
+</span></pre></div>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="OnUpdateColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="OnUpdateColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="OnUpdateColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="OnUpdateColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="OnUpdateColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="OnUpdateColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="OnUpdateColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="OnUpdateColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="OnUpdateColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="OnUpdateColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="OnUpdateColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="OnUpdateColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="OnUpdateColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="OnUpdateColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="OnUpdateColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="OnUpdateColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="OnUpdateColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="OnUpdateColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="OnUpdateColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="OnUpdateColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="OnUpdateColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="OnUpdateColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="OnUpdateColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="OnUpdateColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="OnUpdateColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="OnUpdateColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="OnUpdateColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="OnUpdateColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="OnUpdateColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="OnUpdateColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="OnUpdateColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="OnUpdateColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="OnUpdateColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="OnUpdateColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="OnUpdateColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="OnUpdateColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="OnUpdateColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="PrimaryKeyColumnConstraint">
<input id="PrimaryKeyColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -13477,8 +13698,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#PrimaryKeyColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PrimaryKeyColumnConstraint-1057"><a href="#PrimaryKeyColumnConstraint-1057"><span class="linenos">1057</span></a><span class="k">class</span> <span class="nc">PrimaryKeyColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="PrimaryKeyColumnConstraint-1058"><a href="#PrimaryKeyColumnConstraint-1058"><span class="linenos">1058</span></a> <span class="n">arg_types</span> <span class="o">=</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PrimaryKeyColumnConstraint-1061"><a href="#PrimaryKeyColumnConstraint-1061"><span class="linenos">1061</span></a><span class="k">class</span> <span class="nc">PrimaryKeyColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="PrimaryKeyColumnConstraint-1062"><a href="#PrimaryKeyColumnConstraint-1062"><span class="linenos">1062</span></a> <span class="n">arg_types</span> <span class="o">=</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></pre></div>
@@ -13541,8 +13762,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#TitleColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TitleColumnConstraint-1061"><a href="#TitleColumnConstraint-1061"><span class="linenos">1061</span></a><span class="k">class</span> <span class="nc">TitleColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="TitleColumnConstraint-1062"><a href="#TitleColumnConstraint-1062"><span class="linenos">1062</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TitleColumnConstraint-1065"><a href="#TitleColumnConstraint-1065"><span class="linenos">1065</span></a><span class="k">class</span> <span class="nc">TitleColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="TitleColumnConstraint-1066"><a href="#TitleColumnConstraint-1066"><span class="linenos">1066</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -13605,8 +13826,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#UniqueColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UniqueColumnConstraint-1065"><a href="#UniqueColumnConstraint-1065"><span class="linenos">1065</span></a><span class="k">class</span> <span class="nc">UniqueColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="UniqueColumnConstraint-1066"><a href="#UniqueColumnConstraint-1066"><span class="linenos">1066</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="UniqueColumnConstraint-1069"><a href="#UniqueColumnConstraint-1069"><span class="linenos">1069</span></a><span class="k">class</span> <span class="nc">UniqueColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="UniqueColumnConstraint-1070"><a href="#UniqueColumnConstraint-1070"><span class="linenos">1070</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>
@@ -13669,8 +13890,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#UppercaseColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UppercaseColumnConstraint-1069"><a href="#UppercaseColumnConstraint-1069"><span class="linenos">1069</span></a><span class="k">class</span> <span class="nc">UppercaseColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="UppercaseColumnConstraint-1070"><a href="#UppercaseColumnConstraint-1070"><span class="linenos">1070</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="UppercaseColumnConstraint-1073"><a href="#UppercaseColumnConstraint-1073"><span class="linenos">1073</span></a><span class="k">class</span> <span class="nc">UppercaseColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="UppercaseColumnConstraint-1074"><a href="#UppercaseColumnConstraint-1074"><span class="linenos">1074</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>
@@ -13733,8 +13954,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#PathColumnConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PathColumnConstraint-1073"><a href="#PathColumnConstraint-1073"><span class="linenos">1073</span></a><span class="k">class</span> <span class="nc">PathColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
-</span><span id="PathColumnConstraint-1074"><a href="#PathColumnConstraint-1074"><span class="linenos">1074</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PathColumnConstraint-1077"><a href="#PathColumnConstraint-1077"><span class="linenos">1077</span></a><span class="k">class</span> <span class="nc">PathColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
+</span><span id="PathColumnConstraint-1078"><a href="#PathColumnConstraint-1078"><span class="linenos">1078</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -13797,8 +14018,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Constraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Constraint-1077"><a href="#Constraint-1077"><span class="linenos">1077</span></a><span class="k">class</span> <span class="nc">Constraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Constraint-1078"><a href="#Constraint-1078"><span class="linenos">1078</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="Constraint-1081"><a href="#Constraint-1081"><span class="linenos">1081</span></a><span class="k">class</span> <span class="nc">Constraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Constraint-1082"><a href="#Constraint-1082"><span class="linenos">1082</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -13861,115 +14082,115 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Delete"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Delete-1081"><a href="#Delete-1081"><span class="linenos">1081</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Delete-1082"><a href="#Delete-1082"><span class="linenos">1082</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Delete-1083"><a href="#Delete-1083"><span class="linenos">1083</span></a>
-</span><span id="Delete-1084"><a href="#Delete-1084"><span class="linenos">1084</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="Delete-1085"><a href="#Delete-1085"><span class="linenos">1085</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1086"><a href="#Delete-1086"><span class="linenos">1086</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Delete-1087"><a href="#Delete-1087"><span class="linenos">1087</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-1088"><a href="#Delete-1088"><span class="linenos">1088</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="Delete-1089"><a href="#Delete-1089"><span class="linenos">1089</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1090"><a href="#Delete-1090"><span class="linenos">1090</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="Delete-1091"><a href="#Delete-1091"><span class="linenos">1091</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete-1092"><a href="#Delete-1092"><span class="linenos">1092</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
-</span><span id="Delete-1093"><a href="#Delete-1093"><span class="linenos">1093</span></a>
-</span><span id="Delete-1094"><a href="#Delete-1094"><span class="linenos">1094</span></a><span class="sd"> Example:</span>
-</span><span id="Delete-1095"><a href="#Delete-1095"><span class="linenos">1095</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
-</span><span id="Delete-1096"><a href="#Delete-1096"><span class="linenos">1096</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Delete-1085"><a href="#Delete-1085"><span class="linenos">1085</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Delete-1086"><a href="#Delete-1086"><span class="linenos">1086</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Delete-1087"><a href="#Delete-1087"><span class="linenos">1087</span></a>
+</span><span id="Delete-1088"><a href="#Delete-1088"><span class="linenos">1088</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="Delete-1089"><a href="#Delete-1089"><span class="linenos">1089</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1090"><a href="#Delete-1090"><span class="linenos">1090</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Delete-1091"><a href="#Delete-1091"><span class="linenos">1091</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-1092"><a href="#Delete-1092"><span class="linenos">1092</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="Delete-1093"><a href="#Delete-1093"><span class="linenos">1093</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1094"><a href="#Delete-1094"><span class="linenos">1094</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="Delete-1095"><a href="#Delete-1095"><span class="linenos">1095</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete-1096"><a href="#Delete-1096"><span class="linenos">1096</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
</span><span id="Delete-1097"><a href="#Delete-1097"><span class="linenos">1097</span></a>
-</span><span id="Delete-1098"><a href="#Delete-1098"><span class="linenos">1098</span></a><span class="sd"> Args:</span>
-</span><span id="Delete-1099"><a href="#Delete-1099"><span class="linenos">1099</span></a><span class="sd"> table: the table from which to delete.</span>
-</span><span id="Delete-1100"><a href="#Delete-1100"><span class="linenos">1100</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Delete-1101"><a href="#Delete-1101"><span class="linenos">1101</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete-1102"><a href="#Delete-1102"><span class="linenos">1102</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete-1103"><a href="#Delete-1103"><span class="linenos">1103</span></a>
-</span><span id="Delete-1104"><a href="#Delete-1104"><span class="linenos">1104</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete-1105"><a href="#Delete-1105"><span class="linenos">1105</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete-1106"><a href="#Delete-1106"><span class="linenos">1106</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete-1107"><a href="#Delete-1107"><span class="linenos">1107</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Delete-1108"><a href="#Delete-1108"><span class="linenos">1108</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
-</span><span id="Delete-1109"><a href="#Delete-1109"><span class="linenos">1109</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1110"><a href="#Delete-1110"><span class="linenos">1110</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;this&quot;</span><span class="p">,</span>
-</span><span id="Delete-1111"><a href="#Delete-1111"><span class="linenos">1111</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Delete-1112"><a href="#Delete-1112"><span class="linenos">1112</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
-</span><span id="Delete-1113"><a href="#Delete-1113"><span class="linenos">1113</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Delete-1114"><a href="#Delete-1114"><span class="linenos">1114</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1115"><a href="#Delete-1115"><span class="linenos">1115</span></a> <span class="p">)</span>
-</span><span id="Delete-1116"><a href="#Delete-1116"><span class="linenos">1116</span></a>
-</span><span id="Delete-1117"><a href="#Delete-1117"><span class="linenos">1117</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
-</span><span id="Delete-1118"><a href="#Delete-1118"><span class="linenos">1118</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1119"><a href="#Delete-1119"><span class="linenos">1119</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><span id="Delete-1120"><a href="#Delete-1120"><span class="linenos">1120</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="Delete-1121"><a href="#Delete-1121"><span class="linenos">1121</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-1122"><a href="#Delete-1122"><span class="linenos">1122</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="Delete-1123"><a href="#Delete-1123"><span class="linenos">1123</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1124"><a href="#Delete-1124"><span class="linenos">1124</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="Delete-1125"><a href="#Delete-1125"><span class="linenos">1125</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete-1126"><a href="#Delete-1126"><span class="linenos">1126</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="Delete-1127"><a href="#Delete-1127"><span class="linenos">1127</span></a>
-</span><span id="Delete-1128"><a href="#Delete-1128"><span class="linenos">1128</span></a><span class="sd"> Example:</span>
-</span><span id="Delete-1129"><a href="#Delete-1129"><span class="linenos">1129</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
-</span><span id="Delete-1130"><a href="#Delete-1130"><span class="linenos">1130</span></a><span class="sd"> &quot;DELETE FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
+</span><span id="Delete-1098"><a href="#Delete-1098"><span class="linenos">1098</span></a><span class="sd"> Example:</span>
+</span><span id="Delete-1099"><a href="#Delete-1099"><span class="linenos">1099</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
+</span><span id="Delete-1100"><a href="#Delete-1100"><span class="linenos">1100</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
+</span><span id="Delete-1101"><a href="#Delete-1101"><span class="linenos">1101</span></a>
+</span><span id="Delete-1102"><a href="#Delete-1102"><span class="linenos">1102</span></a><span class="sd"> Args:</span>
+</span><span id="Delete-1103"><a href="#Delete-1103"><span class="linenos">1103</span></a><span class="sd"> table: the table from which to delete.</span>
+</span><span id="Delete-1104"><a href="#Delete-1104"><span class="linenos">1104</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Delete-1105"><a href="#Delete-1105"><span class="linenos">1105</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete-1106"><a href="#Delete-1106"><span class="linenos">1106</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete-1107"><a href="#Delete-1107"><span class="linenos">1107</span></a>
+</span><span id="Delete-1108"><a href="#Delete-1108"><span class="linenos">1108</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete-1109"><a href="#Delete-1109"><span class="linenos">1109</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete-1110"><a href="#Delete-1110"><span class="linenos">1110</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete-1111"><a href="#Delete-1111"><span class="linenos">1111</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Delete-1112"><a href="#Delete-1112"><span class="linenos">1112</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
+</span><span id="Delete-1113"><a href="#Delete-1113"><span class="linenos">1113</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1114"><a href="#Delete-1114"><span class="linenos">1114</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;this&quot;</span><span class="p">,</span>
+</span><span id="Delete-1115"><a href="#Delete-1115"><span class="linenos">1115</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Delete-1116"><a href="#Delete-1116"><span class="linenos">1116</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
+</span><span id="Delete-1117"><a href="#Delete-1117"><span class="linenos">1117</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Delete-1118"><a href="#Delete-1118"><span class="linenos">1118</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1119"><a href="#Delete-1119"><span class="linenos">1119</span></a> <span class="p">)</span>
+</span><span id="Delete-1120"><a href="#Delete-1120"><span class="linenos">1120</span></a>
+</span><span id="Delete-1121"><a href="#Delete-1121"><span class="linenos">1121</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="Delete-1122"><a href="#Delete-1122"><span class="linenos">1122</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1123"><a href="#Delete-1123"><span class="linenos">1123</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><span id="Delete-1124"><a href="#Delete-1124"><span class="linenos">1124</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="Delete-1125"><a href="#Delete-1125"><span class="linenos">1125</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-1126"><a href="#Delete-1126"><span class="linenos">1126</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="Delete-1127"><a href="#Delete-1127"><span class="linenos">1127</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1128"><a href="#Delete-1128"><span class="linenos">1128</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="Delete-1129"><a href="#Delete-1129"><span class="linenos">1129</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete-1130"><a href="#Delete-1130"><span class="linenos">1130</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
</span><span id="Delete-1131"><a href="#Delete-1131"><span class="linenos">1131</span></a>
-</span><span id="Delete-1132"><a href="#Delete-1132"><span class="linenos">1132</span></a><span class="sd"> Args:</span>
-</span><span id="Delete-1133"><a href="#Delete-1133"><span class="linenos">1133</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Delete-1134"><a href="#Delete-1134"><span class="linenos">1134</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Delete-1135"><a href="#Delete-1135"><span class="linenos">1135</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Delete-1136"><a href="#Delete-1136"><span class="linenos">1136</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Delete-1137"><a href="#Delete-1137"><span class="linenos">1137</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Delete-1138"><a href="#Delete-1138"><span class="linenos">1138</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Delete-1139"><a href="#Delete-1139"><span class="linenos">1139</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete-1140"><a href="#Delete-1140"><span class="linenos">1140</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete-1141"><a href="#Delete-1141"><span class="linenos">1141</span></a>
-</span><span id="Delete-1142"><a href="#Delete-1142"><span class="linenos">1142</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete-1143"><a href="#Delete-1143"><span class="linenos">1143</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete-1144"><a href="#Delete-1144"><span class="linenos">1144</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete-1145"><a href="#Delete-1145"><span class="linenos">1145</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Delete-1146"><a href="#Delete-1146"><span class="linenos">1146</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Delete-1147"><a href="#Delete-1147"><span class="linenos">1147</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1148"><a href="#Delete-1148"><span class="linenos">1148</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="Delete-1149"><a href="#Delete-1149"><span class="linenos">1149</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Delete-1150"><a href="#Delete-1150"><span class="linenos">1150</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="Delete-1151"><a href="#Delete-1151"><span class="linenos">1151</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Delete-1152"><a href="#Delete-1152"><span class="linenos">1152</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Delete-1153"><a href="#Delete-1153"><span class="linenos">1153</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1154"><a href="#Delete-1154"><span class="linenos">1154</span></a> <span class="p">)</span>
-</span><span id="Delete-1155"><a href="#Delete-1155"><span class="linenos">1155</span></a>
-</span><span id="Delete-1156"><a href="#Delete-1156"><span class="linenos">1156</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
-</span><span id="Delete-1157"><a href="#Delete-1157"><span class="linenos">1157</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1158"><a href="#Delete-1158"><span class="linenos">1158</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Delete-1159"><a href="#Delete-1159"><span class="linenos">1159</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-1160"><a href="#Delete-1160"><span class="linenos">1160</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="Delete-1161"><a href="#Delete-1161"><span class="linenos">1161</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1162"><a href="#Delete-1162"><span class="linenos">1162</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="Delete-1163"><a href="#Delete-1163"><span class="linenos">1163</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete-1164"><a href="#Delete-1164"><span class="linenos">1164</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
-</span><span id="Delete-1165"><a href="#Delete-1165"><span class="linenos">1165</span></a>
-</span><span id="Delete-1166"><a href="#Delete-1166"><span class="linenos">1166</span></a><span class="sd"> Example:</span>
-</span><span id="Delete-1167"><a href="#Delete-1167"><span class="linenos">1167</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
-</span><span id="Delete-1168"><a href="#Delete-1168"><span class="linenos">1168</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+</span><span id="Delete-1132"><a href="#Delete-1132"><span class="linenos">1132</span></a><span class="sd"> Example:</span>
+</span><span id="Delete-1133"><a href="#Delete-1133"><span class="linenos">1133</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
+</span><span id="Delete-1134"><a href="#Delete-1134"><span class="linenos">1134</span></a><span class="sd"> &quot;DELETE FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
+</span><span id="Delete-1135"><a href="#Delete-1135"><span class="linenos">1135</span></a>
+</span><span id="Delete-1136"><a href="#Delete-1136"><span class="linenos">1136</span></a><span class="sd"> Args:</span>
+</span><span id="Delete-1137"><a href="#Delete-1137"><span class="linenos">1137</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Delete-1138"><a href="#Delete-1138"><span class="linenos">1138</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Delete-1139"><a href="#Delete-1139"><span class="linenos">1139</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Delete-1140"><a href="#Delete-1140"><span class="linenos">1140</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Delete-1141"><a href="#Delete-1141"><span class="linenos">1141</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Delete-1142"><a href="#Delete-1142"><span class="linenos">1142</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Delete-1143"><a href="#Delete-1143"><span class="linenos">1143</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete-1144"><a href="#Delete-1144"><span class="linenos">1144</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete-1145"><a href="#Delete-1145"><span class="linenos">1145</span></a>
+</span><span id="Delete-1146"><a href="#Delete-1146"><span class="linenos">1146</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete-1147"><a href="#Delete-1147"><span class="linenos">1147</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete-1148"><a href="#Delete-1148"><span class="linenos">1148</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete-1149"><a href="#Delete-1149"><span class="linenos">1149</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Delete-1150"><a href="#Delete-1150"><span class="linenos">1150</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Delete-1151"><a href="#Delete-1151"><span class="linenos">1151</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1152"><a href="#Delete-1152"><span class="linenos">1152</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="Delete-1153"><a href="#Delete-1153"><span class="linenos">1153</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Delete-1154"><a href="#Delete-1154"><span class="linenos">1154</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
+</span><span id="Delete-1155"><a href="#Delete-1155"><span class="linenos">1155</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Delete-1156"><a href="#Delete-1156"><span class="linenos">1156</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Delete-1157"><a href="#Delete-1157"><span class="linenos">1157</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1158"><a href="#Delete-1158"><span class="linenos">1158</span></a> <span class="p">)</span>
+</span><span id="Delete-1159"><a href="#Delete-1159"><span class="linenos">1159</span></a>
+</span><span id="Delete-1160"><a href="#Delete-1160"><span class="linenos">1160</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
+</span><span id="Delete-1161"><a href="#Delete-1161"><span class="linenos">1161</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1162"><a href="#Delete-1162"><span class="linenos">1162</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Delete-1163"><a href="#Delete-1163"><span class="linenos">1163</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-1164"><a href="#Delete-1164"><span class="linenos">1164</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="Delete-1165"><a href="#Delete-1165"><span class="linenos">1165</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1166"><a href="#Delete-1166"><span class="linenos">1166</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="Delete-1167"><a href="#Delete-1167"><span class="linenos">1167</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete-1168"><a href="#Delete-1168"><span class="linenos">1168</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
</span><span id="Delete-1169"><a href="#Delete-1169"><span class="linenos">1169</span></a>
-</span><span id="Delete-1170"><a href="#Delete-1170"><span class="linenos">1170</span></a><span class="sd"> Args:</span>
-</span><span id="Delete-1171"><a href="#Delete-1171"><span class="linenos">1171</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="Delete-1172"><a href="#Delete-1172"><span class="linenos">1172</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Delete-1173"><a href="#Delete-1173"><span class="linenos">1173</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Delete-1174"><a href="#Delete-1174"><span class="linenos">1174</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete-1175"><a href="#Delete-1175"><span class="linenos">1175</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete-1176"><a href="#Delete-1176"><span class="linenos">1176</span></a>
-</span><span id="Delete-1177"><a href="#Delete-1177"><span class="linenos">1177</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete-1178"><a href="#Delete-1178"><span class="linenos">1178</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete-1179"><a href="#Delete-1179"><span class="linenos">1179</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete-1180"><a href="#Delete-1180"><span class="linenos">1180</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Delete-1181"><a href="#Delete-1181"><span class="linenos">1181</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="Delete-1182"><a href="#Delete-1182"><span class="linenos">1182</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete-1183"><a href="#Delete-1183"><span class="linenos">1183</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;returning&quot;</span><span class="p">,</span>
-</span><span id="Delete-1184"><a href="#Delete-1184"><span class="linenos">1184</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;RETURNING&quot;</span><span class="p">,</span>
-</span><span id="Delete-1185"><a href="#Delete-1185"><span class="linenos">1185</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Delete-1186"><a href="#Delete-1186"><span class="linenos">1186</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Delete-1187"><a href="#Delete-1187"><span class="linenos">1187</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
-</span><span id="Delete-1188"><a href="#Delete-1188"><span class="linenos">1188</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete-1189"><a href="#Delete-1189"><span class="linenos">1189</span></a> <span class="p">)</span>
+</span><span id="Delete-1170"><a href="#Delete-1170"><span class="linenos">1170</span></a><span class="sd"> Example:</span>
+</span><span id="Delete-1171"><a href="#Delete-1171"><span class="linenos">1171</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
+</span><span id="Delete-1172"><a href="#Delete-1172"><span class="linenos">1172</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+</span><span id="Delete-1173"><a href="#Delete-1173"><span class="linenos">1173</span></a>
+</span><span id="Delete-1174"><a href="#Delete-1174"><span class="linenos">1174</span></a><span class="sd"> Args:</span>
+</span><span id="Delete-1175"><a href="#Delete-1175"><span class="linenos">1175</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="Delete-1176"><a href="#Delete-1176"><span class="linenos">1176</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Delete-1177"><a href="#Delete-1177"><span class="linenos">1177</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Delete-1178"><a href="#Delete-1178"><span class="linenos">1178</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete-1179"><a href="#Delete-1179"><span class="linenos">1179</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete-1180"><a href="#Delete-1180"><span class="linenos">1180</span></a>
+</span><span id="Delete-1181"><a href="#Delete-1181"><span class="linenos">1181</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete-1182"><a href="#Delete-1182"><span class="linenos">1182</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete-1183"><a href="#Delete-1183"><span class="linenos">1183</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete-1184"><a href="#Delete-1184"><span class="linenos">1184</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Delete-1185"><a href="#Delete-1185"><span class="linenos">1185</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="Delete-1186"><a href="#Delete-1186"><span class="linenos">1186</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete-1187"><a href="#Delete-1187"><span class="linenos">1187</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;returning&quot;</span><span class="p">,</span>
+</span><span id="Delete-1188"><a href="#Delete-1188"><span class="linenos">1188</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;RETURNING&quot;</span><span class="p">,</span>
+</span><span id="Delete-1189"><a href="#Delete-1189"><span class="linenos">1189</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Delete-1190"><a href="#Delete-1190"><span class="linenos">1190</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Delete-1191"><a href="#Delete-1191"><span class="linenos">1191</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
+</span><span id="Delete-1192"><a href="#Delete-1192"><span class="linenos">1192</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete-1193"><a href="#Delete-1193"><span class="linenos">1193</span></a> <span class="p">)</span>
</span></pre></div>
@@ -13986,38 +14207,38 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Delete.delete"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.delete-1084"><a href="#Delete.delete-1084"><span class="linenos">1084</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="Delete.delete-1085"><a href="#Delete.delete-1085"><span class="linenos">1085</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete.delete-1086"><a href="#Delete.delete-1086"><span class="linenos">1086</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Delete.delete-1087"><a href="#Delete.delete-1087"><span class="linenos">1087</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.delete-1088"><a href="#Delete.delete-1088"><span class="linenos">1088</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="Delete.delete-1089"><a href="#Delete.delete-1089"><span class="linenos">1089</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.delete-1090"><a href="#Delete.delete-1090"><span class="linenos">1090</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="Delete.delete-1091"><a href="#Delete.delete-1091"><span class="linenos">1091</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete.delete-1092"><a href="#Delete.delete-1092"><span class="linenos">1092</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
-</span><span id="Delete.delete-1093"><a href="#Delete.delete-1093"><span class="linenos">1093</span></a>
-</span><span id="Delete.delete-1094"><a href="#Delete.delete-1094"><span class="linenos">1094</span></a><span class="sd"> Example:</span>
-</span><span id="Delete.delete-1095"><a href="#Delete.delete-1095"><span class="linenos">1095</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
-</span><span id="Delete.delete-1096"><a href="#Delete.delete-1096"><span class="linenos">1096</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.delete-1088"><a href="#Delete.delete-1088"><span class="linenos">1088</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="Delete.delete-1089"><a href="#Delete.delete-1089"><span class="linenos">1089</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete.delete-1090"><a href="#Delete.delete-1090"><span class="linenos">1090</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Delete.delete-1091"><a href="#Delete.delete-1091"><span class="linenos">1091</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.delete-1092"><a href="#Delete.delete-1092"><span class="linenos">1092</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="Delete.delete-1093"><a href="#Delete.delete-1093"><span class="linenos">1093</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.delete-1094"><a href="#Delete.delete-1094"><span class="linenos">1094</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="Delete.delete-1095"><a href="#Delete.delete-1095"><span class="linenos">1095</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete.delete-1096"><a href="#Delete.delete-1096"><span class="linenos">1096</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
</span><span id="Delete.delete-1097"><a href="#Delete.delete-1097"><span class="linenos">1097</span></a>
-</span><span id="Delete.delete-1098"><a href="#Delete.delete-1098"><span class="linenos">1098</span></a><span class="sd"> Args:</span>
-</span><span id="Delete.delete-1099"><a href="#Delete.delete-1099"><span class="linenos">1099</span></a><span class="sd"> table: the table from which to delete.</span>
-</span><span id="Delete.delete-1100"><a href="#Delete.delete-1100"><span class="linenos">1100</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Delete.delete-1101"><a href="#Delete.delete-1101"><span class="linenos">1101</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete.delete-1102"><a href="#Delete.delete-1102"><span class="linenos">1102</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete.delete-1103"><a href="#Delete.delete-1103"><span class="linenos">1103</span></a>
-</span><span id="Delete.delete-1104"><a href="#Delete.delete-1104"><span class="linenos">1104</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete.delete-1105"><a href="#Delete.delete-1105"><span class="linenos">1105</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete.delete-1106"><a href="#Delete.delete-1106"><span class="linenos">1106</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete.delete-1107"><a href="#Delete.delete-1107"><span class="linenos">1107</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Delete.delete-1108"><a href="#Delete.delete-1108"><span class="linenos">1108</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
-</span><span id="Delete.delete-1109"><a href="#Delete.delete-1109"><span class="linenos">1109</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete.delete-1110"><a href="#Delete.delete-1110"><span class="linenos">1110</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;this&quot;</span><span class="p">,</span>
-</span><span id="Delete.delete-1111"><a href="#Delete.delete-1111"><span class="linenos">1111</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Delete.delete-1112"><a href="#Delete.delete-1112"><span class="linenos">1112</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
-</span><span id="Delete.delete-1113"><a href="#Delete.delete-1113"><span class="linenos">1113</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Delete.delete-1114"><a href="#Delete.delete-1114"><span class="linenos">1114</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.delete-1115"><a href="#Delete.delete-1115"><span class="linenos">1115</span></a> <span class="p">)</span>
+</span><span id="Delete.delete-1098"><a href="#Delete.delete-1098"><span class="linenos">1098</span></a><span class="sd"> Example:</span>
+</span><span id="Delete.delete-1099"><a href="#Delete.delete-1099"><span class="linenos">1099</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
+</span><span id="Delete.delete-1100"><a href="#Delete.delete-1100"><span class="linenos">1100</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
+</span><span id="Delete.delete-1101"><a href="#Delete.delete-1101"><span class="linenos">1101</span></a>
+</span><span id="Delete.delete-1102"><a href="#Delete.delete-1102"><span class="linenos">1102</span></a><span class="sd"> Args:</span>
+</span><span id="Delete.delete-1103"><a href="#Delete.delete-1103"><span class="linenos">1103</span></a><span class="sd"> table: the table from which to delete.</span>
+</span><span id="Delete.delete-1104"><a href="#Delete.delete-1104"><span class="linenos">1104</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Delete.delete-1105"><a href="#Delete.delete-1105"><span class="linenos">1105</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete.delete-1106"><a href="#Delete.delete-1106"><span class="linenos">1106</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete.delete-1107"><a href="#Delete.delete-1107"><span class="linenos">1107</span></a>
+</span><span id="Delete.delete-1108"><a href="#Delete.delete-1108"><span class="linenos">1108</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete.delete-1109"><a href="#Delete.delete-1109"><span class="linenos">1109</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete.delete-1110"><a href="#Delete.delete-1110"><span class="linenos">1110</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete.delete-1111"><a href="#Delete.delete-1111"><span class="linenos">1111</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Delete.delete-1112"><a href="#Delete.delete-1112"><span class="linenos">1112</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
+</span><span id="Delete.delete-1113"><a href="#Delete.delete-1113"><span class="linenos">1113</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete.delete-1114"><a href="#Delete.delete-1114"><span class="linenos">1114</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;this&quot;</span><span class="p">,</span>
+</span><span id="Delete.delete-1115"><a href="#Delete.delete-1115"><span class="linenos">1115</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Delete.delete-1116"><a href="#Delete.delete-1116"><span class="linenos">1116</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
+</span><span id="Delete.delete-1117"><a href="#Delete.delete-1117"><span class="linenos">1117</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Delete.delete-1118"><a href="#Delete.delete-1118"><span class="linenos">1118</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.delete-1119"><a href="#Delete.delete-1119"><span class="linenos">1119</span></a> <span class="p">)</span>
</span></pre></div>
@@ -14062,44 +14283,44 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Delete.where"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.where-1117"><a href="#Delete.where-1117"><span class="linenos">1117</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
-</span><span id="Delete.where-1118"><a href="#Delete.where-1118"><span class="linenos">1118</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete.where-1119"><a href="#Delete.where-1119"><span class="linenos">1119</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><span id="Delete.where-1120"><a href="#Delete.where-1120"><span class="linenos">1120</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="Delete.where-1121"><a href="#Delete.where-1121"><span class="linenos">1121</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.where-1122"><a href="#Delete.where-1122"><span class="linenos">1122</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="Delete.where-1123"><a href="#Delete.where-1123"><span class="linenos">1123</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.where-1124"><a href="#Delete.where-1124"><span class="linenos">1124</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="Delete.where-1125"><a href="#Delete.where-1125"><span class="linenos">1125</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete.where-1126"><a href="#Delete.where-1126"><span class="linenos">1126</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="Delete.where-1127"><a href="#Delete.where-1127"><span class="linenos">1127</span></a>
-</span><span id="Delete.where-1128"><a href="#Delete.where-1128"><span class="linenos">1128</span></a><span class="sd"> Example:</span>
-</span><span id="Delete.where-1129"><a href="#Delete.where-1129"><span class="linenos">1129</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
-</span><span id="Delete.where-1130"><a href="#Delete.where-1130"><span class="linenos">1130</span></a><span class="sd"> &quot;DELETE FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.where-1121"><a href="#Delete.where-1121"><span class="linenos">1121</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="Delete.where-1122"><a href="#Delete.where-1122"><span class="linenos">1122</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete.where-1123"><a href="#Delete.where-1123"><span class="linenos">1123</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><span id="Delete.where-1124"><a href="#Delete.where-1124"><span class="linenos">1124</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="Delete.where-1125"><a href="#Delete.where-1125"><span class="linenos">1125</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.where-1126"><a href="#Delete.where-1126"><span class="linenos">1126</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="Delete.where-1127"><a href="#Delete.where-1127"><span class="linenos">1127</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.where-1128"><a href="#Delete.where-1128"><span class="linenos">1128</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="Delete.where-1129"><a href="#Delete.where-1129"><span class="linenos">1129</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete.where-1130"><a href="#Delete.where-1130"><span class="linenos">1130</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
</span><span id="Delete.where-1131"><a href="#Delete.where-1131"><span class="linenos">1131</span></a>
-</span><span id="Delete.where-1132"><a href="#Delete.where-1132"><span class="linenos">1132</span></a><span class="sd"> Args:</span>
-</span><span id="Delete.where-1133"><a href="#Delete.where-1133"><span class="linenos">1133</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Delete.where-1134"><a href="#Delete.where-1134"><span class="linenos">1134</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Delete.where-1135"><a href="#Delete.where-1135"><span class="linenos">1135</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Delete.where-1136"><a href="#Delete.where-1136"><span class="linenos">1136</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Delete.where-1137"><a href="#Delete.where-1137"><span class="linenos">1137</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Delete.where-1138"><a href="#Delete.where-1138"><span class="linenos">1138</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Delete.where-1139"><a href="#Delete.where-1139"><span class="linenos">1139</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete.where-1140"><a href="#Delete.where-1140"><span class="linenos">1140</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete.where-1141"><a href="#Delete.where-1141"><span class="linenos">1141</span></a>
-</span><span id="Delete.where-1142"><a href="#Delete.where-1142"><span class="linenos">1142</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete.where-1143"><a href="#Delete.where-1143"><span class="linenos">1143</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete.where-1144"><a href="#Delete.where-1144"><span class="linenos">1144</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete.where-1145"><a href="#Delete.where-1145"><span class="linenos">1145</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Delete.where-1146"><a href="#Delete.where-1146"><span class="linenos">1146</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Delete.where-1147"><a href="#Delete.where-1147"><span class="linenos">1147</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete.where-1148"><a href="#Delete.where-1148"><span class="linenos">1148</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="Delete.where-1149"><a href="#Delete.where-1149"><span class="linenos">1149</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Delete.where-1150"><a href="#Delete.where-1150"><span class="linenos">1150</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="Delete.where-1151"><a href="#Delete.where-1151"><span class="linenos">1151</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Delete.where-1152"><a href="#Delete.where-1152"><span class="linenos">1152</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Delete.where-1153"><a href="#Delete.where-1153"><span class="linenos">1153</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.where-1154"><a href="#Delete.where-1154"><span class="linenos">1154</span></a> <span class="p">)</span>
+</span><span id="Delete.where-1132"><a href="#Delete.where-1132"><span class="linenos">1132</span></a><span class="sd"> Example:</span>
+</span><span id="Delete.where-1133"><a href="#Delete.where-1133"><span class="linenos">1133</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
+</span><span id="Delete.where-1134"><a href="#Delete.where-1134"><span class="linenos">1134</span></a><span class="sd"> &quot;DELETE FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
+</span><span id="Delete.where-1135"><a href="#Delete.where-1135"><span class="linenos">1135</span></a>
+</span><span id="Delete.where-1136"><a href="#Delete.where-1136"><span class="linenos">1136</span></a><span class="sd"> Args:</span>
+</span><span id="Delete.where-1137"><a href="#Delete.where-1137"><span class="linenos">1137</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Delete.where-1138"><a href="#Delete.where-1138"><span class="linenos">1138</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Delete.where-1139"><a href="#Delete.where-1139"><span class="linenos">1139</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Delete.where-1140"><a href="#Delete.where-1140"><span class="linenos">1140</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Delete.where-1141"><a href="#Delete.where-1141"><span class="linenos">1141</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Delete.where-1142"><a href="#Delete.where-1142"><span class="linenos">1142</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Delete.where-1143"><a href="#Delete.where-1143"><span class="linenos">1143</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete.where-1144"><a href="#Delete.where-1144"><span class="linenos">1144</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete.where-1145"><a href="#Delete.where-1145"><span class="linenos">1145</span></a>
+</span><span id="Delete.where-1146"><a href="#Delete.where-1146"><span class="linenos">1146</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete.where-1147"><a href="#Delete.where-1147"><span class="linenos">1147</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete.where-1148"><a href="#Delete.where-1148"><span class="linenos">1148</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete.where-1149"><a href="#Delete.where-1149"><span class="linenos">1149</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Delete.where-1150"><a href="#Delete.where-1150"><span class="linenos">1150</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Delete.where-1151"><a href="#Delete.where-1151"><span class="linenos">1151</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete.where-1152"><a href="#Delete.where-1152"><span class="linenos">1152</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="Delete.where-1153"><a href="#Delete.where-1153"><span class="linenos">1153</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Delete.where-1154"><a href="#Delete.where-1154"><span class="linenos">1154</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
+</span><span id="Delete.where-1155"><a href="#Delete.where-1155"><span class="linenos">1155</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Delete.where-1156"><a href="#Delete.where-1156"><span class="linenos">1156</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Delete.where-1157"><a href="#Delete.where-1157"><span class="linenos">1157</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.where-1158"><a href="#Delete.where-1158"><span class="linenos">1158</span></a> <span class="p">)</span>
</span></pre></div>
@@ -14148,40 +14369,40 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Delete.returning"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.returning-1156"><a href="#Delete.returning-1156"><span class="linenos">1156</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
-</span><span id="Delete.returning-1157"><a href="#Delete.returning-1157"><span class="linenos">1157</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete.returning-1158"><a href="#Delete.returning-1158"><span class="linenos">1158</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Delete.returning-1159"><a href="#Delete.returning-1159"><span class="linenos">1159</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.returning-1160"><a href="#Delete.returning-1160"><span class="linenos">1160</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="Delete.returning-1161"><a href="#Delete.returning-1161"><span class="linenos">1161</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.returning-1162"><a href="#Delete.returning-1162"><span class="linenos">1162</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="Delete.returning-1163"><a href="#Delete.returning-1163"><span class="linenos">1163</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Delete.returning-1164"><a href="#Delete.returning-1164"><span class="linenos">1164</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
-</span><span id="Delete.returning-1165"><a href="#Delete.returning-1165"><span class="linenos">1165</span></a>
-</span><span id="Delete.returning-1166"><a href="#Delete.returning-1166"><span class="linenos">1166</span></a><span class="sd"> Example:</span>
-</span><span id="Delete.returning-1167"><a href="#Delete.returning-1167"><span class="linenos">1167</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
-</span><span id="Delete.returning-1168"><a href="#Delete.returning-1168"><span class="linenos">1168</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.returning-1160"><a href="#Delete.returning-1160"><span class="linenos">1160</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
+</span><span id="Delete.returning-1161"><a href="#Delete.returning-1161"><span class="linenos">1161</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete.returning-1162"><a href="#Delete.returning-1162"><span class="linenos">1162</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Delete.returning-1163"><a href="#Delete.returning-1163"><span class="linenos">1163</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.returning-1164"><a href="#Delete.returning-1164"><span class="linenos">1164</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="Delete.returning-1165"><a href="#Delete.returning-1165"><span class="linenos">1165</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.returning-1166"><a href="#Delete.returning-1166"><span class="linenos">1166</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="Delete.returning-1167"><a href="#Delete.returning-1167"><span class="linenos">1167</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Delete.returning-1168"><a href="#Delete.returning-1168"><span class="linenos">1168</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
</span><span id="Delete.returning-1169"><a href="#Delete.returning-1169"><span class="linenos">1169</span></a>
-</span><span id="Delete.returning-1170"><a href="#Delete.returning-1170"><span class="linenos">1170</span></a><span class="sd"> Args:</span>
-</span><span id="Delete.returning-1171"><a href="#Delete.returning-1171"><span class="linenos">1171</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="Delete.returning-1172"><a href="#Delete.returning-1172"><span class="linenos">1172</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Delete.returning-1173"><a href="#Delete.returning-1173"><span class="linenos">1173</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Delete.returning-1174"><a href="#Delete.returning-1174"><span class="linenos">1174</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Delete.returning-1175"><a href="#Delete.returning-1175"><span class="linenos">1175</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Delete.returning-1176"><a href="#Delete.returning-1176"><span class="linenos">1176</span></a>
-</span><span id="Delete.returning-1177"><a href="#Delete.returning-1177"><span class="linenos">1177</span></a><span class="sd"> Returns:</span>
-</span><span id="Delete.returning-1178"><a href="#Delete.returning-1178"><span class="linenos">1178</span></a><span class="sd"> Delete: the modified expression.</span>
-</span><span id="Delete.returning-1179"><a href="#Delete.returning-1179"><span class="linenos">1179</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Delete.returning-1180"><a href="#Delete.returning-1180"><span class="linenos">1180</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Delete.returning-1181"><a href="#Delete.returning-1181"><span class="linenos">1181</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="Delete.returning-1182"><a href="#Delete.returning-1182"><span class="linenos">1182</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Delete.returning-1183"><a href="#Delete.returning-1183"><span class="linenos">1183</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;returning&quot;</span><span class="p">,</span>
-</span><span id="Delete.returning-1184"><a href="#Delete.returning-1184"><span class="linenos">1184</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;RETURNING&quot;</span><span class="p">,</span>
-</span><span id="Delete.returning-1185"><a href="#Delete.returning-1185"><span class="linenos">1185</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Delete.returning-1186"><a href="#Delete.returning-1186"><span class="linenos">1186</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Delete.returning-1187"><a href="#Delete.returning-1187"><span class="linenos">1187</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
-</span><span id="Delete.returning-1188"><a href="#Delete.returning-1188"><span class="linenos">1188</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Delete.returning-1189"><a href="#Delete.returning-1189"><span class="linenos">1189</span></a> <span class="p">)</span>
+</span><span id="Delete.returning-1170"><a href="#Delete.returning-1170"><span class="linenos">1170</span></a><span class="sd"> Example:</span>
+</span><span id="Delete.returning-1171"><a href="#Delete.returning-1171"><span class="linenos">1171</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
+</span><span id="Delete.returning-1172"><a href="#Delete.returning-1172"><span class="linenos">1172</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
+</span><span id="Delete.returning-1173"><a href="#Delete.returning-1173"><span class="linenos">1173</span></a>
+</span><span id="Delete.returning-1174"><a href="#Delete.returning-1174"><span class="linenos">1174</span></a><span class="sd"> Args:</span>
+</span><span id="Delete.returning-1175"><a href="#Delete.returning-1175"><span class="linenos">1175</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="Delete.returning-1176"><a href="#Delete.returning-1176"><span class="linenos">1176</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Delete.returning-1177"><a href="#Delete.returning-1177"><span class="linenos">1177</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Delete.returning-1178"><a href="#Delete.returning-1178"><span class="linenos">1178</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Delete.returning-1179"><a href="#Delete.returning-1179"><span class="linenos">1179</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Delete.returning-1180"><a href="#Delete.returning-1180"><span class="linenos">1180</span></a>
+</span><span id="Delete.returning-1181"><a href="#Delete.returning-1181"><span class="linenos">1181</span></a><span class="sd"> Returns:</span>
+</span><span id="Delete.returning-1182"><a href="#Delete.returning-1182"><span class="linenos">1182</span></a><span class="sd"> Delete: the modified expression.</span>
+</span><span id="Delete.returning-1183"><a href="#Delete.returning-1183"><span class="linenos">1183</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Delete.returning-1184"><a href="#Delete.returning-1184"><span class="linenos">1184</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Delete.returning-1185"><a href="#Delete.returning-1185"><span class="linenos">1185</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="Delete.returning-1186"><a href="#Delete.returning-1186"><span class="linenos">1186</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Delete.returning-1187"><a href="#Delete.returning-1187"><span class="linenos">1187</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;returning&quot;</span><span class="p">,</span>
+</span><span id="Delete.returning-1188"><a href="#Delete.returning-1188"><span class="linenos">1188</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;RETURNING&quot;</span><span class="p">,</span>
+</span><span id="Delete.returning-1189"><a href="#Delete.returning-1189"><span class="linenos">1189</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Delete.returning-1190"><a href="#Delete.returning-1190"><span class="linenos">1190</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Delete.returning-1191"><a href="#Delete.returning-1191"><span class="linenos">1191</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
+</span><span id="Delete.returning-1192"><a href="#Delete.returning-1192"><span class="linenos">1192</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Delete.returning-1193"><a href="#Delete.returning-1193"><span class="linenos">1193</span></a> <span class="p">)</span>
</span></pre></div>
@@ -14273,16 +14494,17 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Drop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Drop-1192"><a href="#Drop-1192"><span class="linenos">1192</span></a><span class="k">class</span> <span class="nc">Drop</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Drop-1193"><a href="#Drop-1193"><span class="linenos">1193</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Drop-1194"><a href="#Drop-1194"><span class="linenos">1194</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="Drop-1195"><a href="#Drop-1195"><span class="linenos">1195</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="Drop-1196"><a href="#Drop-1196"><span class="linenos">1196</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="Drop-1197"><a href="#Drop-1197"><span class="linenos">1197</span></a> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Drop-1198"><a href="#Drop-1198"><span class="linenos">1198</span></a> <span class="s2">&quot;materialized&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Drop-1199"><a href="#Drop-1199"><span class="linenos">1199</span></a> <span class="s2">&quot;cascade&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Drop-1200"><a href="#Drop-1200"><span class="linenos">1200</span></a> <span class="s2">&quot;constraints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Drop-1201"><a href="#Drop-1201"><span class="linenos">1201</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Drop-1196"><a href="#Drop-1196"><span class="linenos">1196</span></a><span class="k">class</span> <span class="nc">Drop</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Drop-1197"><a href="#Drop-1197"><span class="linenos">1197</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Drop-1198"><a href="#Drop-1198"><span class="linenos">1198</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="Drop-1199"><a href="#Drop-1199"><span class="linenos">1199</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="Drop-1200"><a href="#Drop-1200"><span class="linenos">1200</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="Drop-1201"><a href="#Drop-1201"><span class="linenos">1201</span></a> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Drop-1202"><a href="#Drop-1202"><span class="linenos">1202</span></a> <span class="s2">&quot;materialized&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Drop-1203"><a href="#Drop-1203"><span class="linenos">1203</span></a> <span class="s2">&quot;cascade&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Drop-1204"><a href="#Drop-1204"><span class="linenos">1204</span></a> <span class="s2">&quot;constraints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Drop-1205"><a href="#Drop-1205"><span class="linenos">1205</span></a> <span class="s2">&quot;purge&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Drop-1206"><a href="#Drop-1206"><span class="linenos">1206</span></a> <span class="p">}</span>
</span></pre></div>
@@ -14345,8 +14567,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Filter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Filter-1204"><a href="#Filter-1204"><span class="linenos">1204</span></a><span class="k">class</span> <span class="nc">Filter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Filter-1205"><a href="#Filter-1205"><span class="linenos">1205</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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="Filter-1209"><a href="#Filter-1209"><span class="linenos">1209</span></a><span class="k">class</span> <span class="nc">Filter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Filter-1210"><a href="#Filter-1210"><span class="linenos">1210</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -14409,8 +14631,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Check"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Check-1208"><a href="#Check-1208"><span class="linenos">1208</span></a><span class="k">class</span> <span class="nc">Check</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Check-1209"><a href="#Check-1209"><span class="linenos">1209</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Check-1213"><a href="#Check-1213"><span class="linenos">1213</span></a><span class="k">class</span> <span class="nc">Check</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Check-1214"><a href="#Check-1214"><span class="linenos">1214</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -14473,9 +14695,9 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Directory"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Directory-1212"><a href="#Directory-1212"><span class="linenos">1212</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-1213"><a href="#Directory-1213"><span class="linenos">1213</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-1214"><a href="#Directory-1214"><span class="linenos">1214</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1217"><a href="#Directory-1217"><span class="linenos">1217</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-1218"><a href="#Directory-1218"><span class="linenos">1218</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-1219"><a href="#Directory-1219"><span class="linenos">1219</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -14538,13 +14760,13 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#ForeignKey"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ForeignKey-1217"><a href="#ForeignKey-1217"><span class="linenos">1217</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-1218"><a href="#ForeignKey-1218"><span class="linenos">1218</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="ForeignKey-1219"><a href="#ForeignKey-1219"><span class="linenos">1219</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-1220"><a href="#ForeignKey-1220"><span class="linenos">1220</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-1221"><a href="#ForeignKey-1221"><span class="linenos">1221</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-1222"><a href="#ForeignKey-1222"><span class="linenos">1222</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-1223"><a href="#ForeignKey-1223"><span class="linenos">1223</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ForeignKey-1222"><a href="#ForeignKey-1222"><span class="linenos">1222</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-1223"><a href="#ForeignKey-1223"><span class="linenos">1223</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="ForeignKey-1224"><a href="#ForeignKey-1224"><span class="linenos">1224</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-1225"><a href="#ForeignKey-1225"><span class="linenos">1225</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-1226"><a href="#ForeignKey-1226"><span class="linenos">1226</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-1227"><a href="#ForeignKey-1227"><span class="linenos">1227</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-1228"><a href="#ForeignKey-1228"><span class="linenos">1228</span></a> <span class="p">}</span>
</span></pre></div>
@@ -14607,8 +14829,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#PrimaryKey"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PrimaryKey-1226"><a href="#PrimaryKey-1226"><span class="linenos">1226</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-1227"><a href="#PrimaryKey-1227"><span class="linenos">1227</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-1231"><a href="#PrimaryKey-1231"><span class="linenos">1231</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-1232"><a href="#PrimaryKey-1232"><span class="linenos">1232</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>
@@ -14671,8 +14893,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Unique"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unique-1230"><a href="#Unique-1230"><span class="linenos">1230</span></a><span class="k">class</span> <span class="nc">Unique</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Unique-1231"><a href="#Unique-1231"><span class="linenos">1231</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="Unique-1235"><a href="#Unique-1235"><span class="linenos">1235</span></a><span class="k">class</span> <span class="nc">Unique</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Unique-1236"><a href="#Unique-1236"><span class="linenos">1236</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>
@@ -14735,8 +14957,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Into"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Into-1236"><a href="#Into-1236"><span class="linenos">1236</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-1237"><a href="#Into-1237"><span class="linenos">1237</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1241"><a href="#Into-1241"><span class="linenos">1241</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-1242"><a href="#Into-1242"><span class="linenos">1242</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -14799,8 +15021,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#From"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="From-1240"><a href="#From-1240"><span class="linenos">1240</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-1241"><a href="#From-1241"><span class="linenos">1241</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="From-1245"><a href="#From-1245"><span class="linenos">1245</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-1246"><a href="#From-1246"><span class="linenos">1246</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>
@@ -14863,8 +15085,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Having"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Having-1244"><a href="#Having-1244"><span class="linenos">1244</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-1245"><a href="#Having-1245"><span class="linenos">1245</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Having-1249"><a href="#Having-1249"><span class="linenos">1249</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-1250"><a href="#Having-1250"><span class="linenos">1250</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -14927,8 +15149,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Hint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Hint-1248"><a href="#Hint-1248"><span class="linenos">1248</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-1249"><a href="#Hint-1249"><span class="linenos">1249</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-1253"><a href="#Hint-1253"><span class="linenos">1253</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-1254"><a href="#Hint-1254"><span class="linenos">1254</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>
@@ -14991,8 +15213,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#JoinHint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JoinHint-1252"><a href="#JoinHint-1252"><span class="linenos">1252</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-1253"><a href="#JoinHint-1253"><span class="linenos">1253</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1257"><a href="#JoinHint-1257"><span class="linenos">1257</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-1258"><a href="#JoinHint-1258"><span class="linenos">1258</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -15055,22 +15277,22 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Identifier"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier-1256"><a href="#Identifier-1256"><span class="linenos">1256</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-1257"><a href="#Identifier-1257"><span class="linenos">1257</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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><span id="Identifier-1258"><a href="#Identifier-1258"><span class="linenos">1258</span></a>
-</span><span id="Identifier-1259"><a href="#Identifier-1259"><span class="linenos">1259</span></a> <span class="nd">@property</span>
-</span><span id="Identifier-1260"><a href="#Identifier-1260"><span class="linenos">1260</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><span id="Identifier-1261"><a href="#Identifier-1261"><span class="linenos">1261</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-1262"><a href="#Identifier-1262"><span class="linenos">1262</span></a>
-</span><span id="Identifier-1263"><a href="#Identifier-1263"><span class="linenos">1263</span></a> <span class="nd">@property</span>
-</span><span id="Identifier-1264"><a href="#Identifier-1264"><span class="linenos">1264</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-1265"><a href="#Identifier-1265"><span class="linenos">1265</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span><span class="n">char</span><span class="o">.</span><span class="n">isupper</span><span class="p">()</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">):</span>
-</span><span id="Identifier-1266"><a href="#Identifier-1266"><span class="linenos">1266</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-1267"><a href="#Identifier-1267"><span class="linenos">1267</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">lower</span><span class="p">()</span>
-</span><span id="Identifier-1268"><a href="#Identifier-1268"><span class="linenos">1268</span></a>
-</span><span id="Identifier-1269"><a href="#Identifier-1269"><span class="linenos">1269</span></a> <span class="nd">@property</span>
-</span><span id="Identifier-1270"><a href="#Identifier-1270"><span class="linenos">1270</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Identifier-1271"><a href="#Identifier-1271"><span class="linenos">1271</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-1261"><a href="#Identifier-1261"><span class="linenos">1261</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-1262"><a href="#Identifier-1262"><span class="linenos">1262</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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><span id="Identifier-1263"><a href="#Identifier-1263"><span class="linenos">1263</span></a>
+</span><span id="Identifier-1264"><a href="#Identifier-1264"><span class="linenos">1264</span></a> <span class="nd">@property</span>
+</span><span id="Identifier-1265"><a href="#Identifier-1265"><span class="linenos">1265</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><span id="Identifier-1266"><a href="#Identifier-1266"><span class="linenos">1266</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-1267"><a href="#Identifier-1267"><span class="linenos">1267</span></a>
+</span><span id="Identifier-1268"><a href="#Identifier-1268"><span class="linenos">1268</span></a> <span class="nd">@property</span>
+</span><span id="Identifier-1269"><a href="#Identifier-1269"><span class="linenos">1269</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-1270"><a href="#Identifier-1270"><span class="linenos">1270</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span><span class="n">char</span><span class="o">.</span><span class="n">isupper</span><span class="p">()</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">):</span>
+</span><span id="Identifier-1271"><a href="#Identifier-1271"><span class="linenos">1271</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-1272"><a href="#Identifier-1272"><span class="linenos">1272</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">lower</span><span class="p">()</span>
+</span><span id="Identifier-1273"><a href="#Identifier-1273"><span class="linenos">1273</span></a>
+</span><span id="Identifier-1274"><a href="#Identifier-1274"><span class="linenos">1274</span></a> <span class="nd">@property</span>
+</span><span id="Identifier-1275"><a href="#Identifier-1275"><span class="linenos">1275</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Identifier-1276"><a href="#Identifier-1276"><span class="linenos">1276</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -15162,16 +15384,16 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Index"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Index-1274"><a href="#Index-1274"><span class="linenos">1274</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-1275"><a href="#Index-1275"><span class="linenos">1275</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Index-1276"><a href="#Index-1276"><span class="linenos">1276</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-1277"><a href="#Index-1277"><span class="linenos">1277</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-1278"><a href="#Index-1278"><span class="linenos">1278</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="Index-1279"><a href="#Index-1279"><span class="linenos">1279</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="Index-1280"><a href="#Index-1280"><span class="linenos">1280</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-1281"><a href="#Index-1281"><span class="linenos">1281</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-1282"><a href="#Index-1282"><span class="linenos">1282</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-1283"><a href="#Index-1283"><span class="linenos">1283</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Index-1279"><a href="#Index-1279"><span class="linenos">1279</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-1280"><a href="#Index-1280"><span class="linenos">1280</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Index-1281"><a href="#Index-1281"><span class="linenos">1281</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-1282"><a href="#Index-1282"><span class="linenos">1282</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-1283"><a href="#Index-1283"><span class="linenos">1283</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="Index-1284"><a href="#Index-1284"><span class="linenos">1284</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="Index-1285"><a href="#Index-1285"><span class="linenos">1285</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-1286"><a href="#Index-1286"><span class="linenos">1286</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-1287"><a href="#Index-1287"><span class="linenos">1287</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-1288"><a href="#Index-1288"><span class="linenos">1288</span></a> <span class="p">}</span>
</span></pre></div>
@@ -15234,17 +15456,18 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Insert"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Insert-1286"><a href="#Insert-1286"><span class="linenos">1286</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Insert-1287"><a href="#Insert-1287"><span class="linenos">1287</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Insert-1288"><a href="#Insert-1288"><span class="linenos">1288</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-1289"><a href="#Insert-1289"><span class="linenos">1289</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-1290"><a href="#Insert-1290"><span class="linenos">1290</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-1291"><a href="#Insert-1291"><span class="linenos">1291</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-1292"><a href="#Insert-1292"><span class="linenos">1292</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-1293"><a href="#Insert-1293"><span class="linenos">1293</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-1294"><a href="#Insert-1294"><span class="linenos">1294</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="Insert-1295"><a href="#Insert-1295"><span class="linenos">1295</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-1296"><a href="#Insert-1296"><span class="linenos">1296</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Insert-1291"><a href="#Insert-1291"><span class="linenos">1291</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Insert-1292"><a href="#Insert-1292"><span class="linenos">1292</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Insert-1293"><a href="#Insert-1293"><span class="linenos">1293</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-1294"><a href="#Insert-1294"><span class="linenos">1294</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-1295"><a href="#Insert-1295"><span class="linenos">1295</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-1296"><a href="#Insert-1296"><span class="linenos">1296</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-1297"><a href="#Insert-1297"><span class="linenos">1297</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-1298"><a href="#Insert-1298"><span class="linenos">1298</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-1299"><a href="#Insert-1299"><span class="linenos">1299</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-1300"><a href="#Insert-1300"><span class="linenos">1300</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="Insert-1301"><a href="#Insert-1301"><span class="linenos">1301</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-1302"><a href="#Insert-1302"><span class="linenos">1302</span></a> <span class="p">}</span>
</span></pre></div>
@@ -15296,6 +15519,76 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</dl>
</div>
</section>
+ <section id="OnConflict">
+ <input id="OnConflict-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">OnConflict</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
+
+ <label class="view-source-button" for="OnConflict-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#OnConflict"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OnConflict-1305"><a href="#OnConflict-1305"><span class="linenos">1305</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-1306"><a href="#OnConflict-1306"><span class="linenos">1306</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="OnConflict-1307"><a href="#OnConflict-1307"><span class="linenos">1307</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-1308"><a href="#OnConflict-1308"><span class="linenos">1308</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-1309"><a href="#OnConflict-1309"><span class="linenos">1309</span></a> <span class="s2">&quot;nothing&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="OnConflict-1310"><a href="#OnConflict-1310"><span class="linenos">1310</span></a> <span class="s2">&quot;key&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="OnConflict-1311"><a href="#OnConflict-1311"><span class="linenos">1311</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-1312"><a href="#OnConflict-1312"><span class="linenos">1312</span></a> <span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="OnConflict.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="OnConflict.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="OnConflict.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="OnConflict.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="OnConflict.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="OnConflict.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="OnConflict.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="OnConflict.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="OnConflict.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="OnConflict.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="OnConflict.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="OnConflict.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="OnConflict.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="OnConflict.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="OnConflict.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="OnConflict.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="OnConflict.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="OnConflict.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="OnConflict.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="OnConflict.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="OnConflict.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="OnConflict.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="OnConflict.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="OnConflict.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="OnConflict.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="OnConflict.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="OnConflict.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="OnConflict.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="OnConflict.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="OnConflict.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="OnConflict.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="OnConflict.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="OnConflict.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="OnConflict.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="OnConflict.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="OnConflict.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="OnConflict.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="Returning">
<input id="Returning-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -15307,8 +15600,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Returning"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Returning-1299"><a href="#Returning-1299"><span class="linenos">1299</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-1300"><a href="#Returning-1300"><span class="linenos">1300</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="Returning-1315"><a href="#Returning-1315"><span class="linenos">1315</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-1316"><a href="#Returning-1316"><span class="linenos">1316</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>
@@ -15371,8 +15664,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Introducer"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Introducer-1304"><a href="#Introducer-1304"><span class="linenos">1304</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-1305"><a href="#Introducer-1305"><span class="linenos">1305</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-1320"><a href="#Introducer-1320"><span class="linenos">1320</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-1321"><a href="#Introducer-1321"><span class="linenos">1321</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -15435,8 +15728,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#National"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="National-1309"><a href="#National-1309"><span class="linenos">1309</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-1310"><a href="#National-1310"><span class="linenos">1310</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="National-1325"><a href="#National-1325"><span class="linenos">1325</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-1326"><a href="#National-1326"><span class="linenos">1326</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -15499,16 +15792,16 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#LoadData"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LoadData-1313"><a href="#LoadData-1313"><span class="linenos">1313</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-1314"><a href="#LoadData-1314"><span class="linenos">1314</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="LoadData-1315"><a href="#LoadData-1315"><span class="linenos">1315</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-1316"><a href="#LoadData-1316"><span class="linenos">1316</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-1317"><a href="#LoadData-1317"><span class="linenos">1317</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-1318"><a href="#LoadData-1318"><span class="linenos">1318</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-1319"><a href="#LoadData-1319"><span class="linenos">1319</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-1320"><a href="#LoadData-1320"><span class="linenos">1320</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-1321"><a href="#LoadData-1321"><span class="linenos">1321</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-1322"><a href="#LoadData-1322"><span class="linenos">1322</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LoadData-1329"><a href="#LoadData-1329"><span class="linenos">1329</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-1330"><a href="#LoadData-1330"><span class="linenos">1330</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="LoadData-1331"><a href="#LoadData-1331"><span class="linenos">1331</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-1332"><a href="#LoadData-1332"><span class="linenos">1332</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-1333"><a href="#LoadData-1333"><span class="linenos">1333</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-1334"><a href="#LoadData-1334"><span class="linenos">1334</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-1335"><a href="#LoadData-1335"><span class="linenos">1335</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-1336"><a href="#LoadData-1336"><span class="linenos">1336</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-1337"><a href="#LoadData-1337"><span class="linenos">1337</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-1338"><a href="#LoadData-1338"><span class="linenos">1338</span></a> <span class="p">}</span>
</span></pre></div>
@@ -15571,8 +15864,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Partition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Partition-1325"><a href="#Partition-1325"><span class="linenos">1325</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-1326"><a href="#Partition-1326"><span class="linenos">1326</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-1341"><a href="#Partition-1341"><span class="linenos">1341</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-1342"><a href="#Partition-1342"><span class="linenos">1342</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>
@@ -15635,8 +15928,13 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Fetch"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Fetch-1329"><a href="#Fetch-1329"><span class="linenos">1329</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-1330"><a href="#Fetch-1330"><span class="linenos">1330</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;direction&quot;</span><span class="p">:</span> <span class="kc">False</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Fetch-1345"><a href="#Fetch-1345"><span class="linenos">1345</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-1346"><a href="#Fetch-1346"><span class="linenos">1346</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Fetch-1347"><a href="#Fetch-1347"><span class="linenos">1347</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-1348"><a href="#Fetch-1348"><span class="linenos">1348</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-1349"><a href="#Fetch-1349"><span class="linenos">1349</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-1350"><a href="#Fetch-1350"><span class="linenos">1350</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-1351"><a href="#Fetch-1351"><span class="linenos">1351</span></a> <span class="p">}</span>
</span></pre></div>
@@ -15699,13 +15997,13 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Group"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Group-1333"><a href="#Group-1333"><span class="linenos">1333</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-1334"><a href="#Group-1334"><span class="linenos">1334</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Group-1335"><a href="#Group-1335"><span class="linenos">1335</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-1336"><a href="#Group-1336"><span class="linenos">1336</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-1337"><a href="#Group-1337"><span class="linenos">1337</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-1338"><a href="#Group-1338"><span class="linenos">1338</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-1339"><a href="#Group-1339"><span class="linenos">1339</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Group-1354"><a href="#Group-1354"><span class="linenos">1354</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-1355"><a href="#Group-1355"><span class="linenos">1355</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Group-1356"><a href="#Group-1356"><span class="linenos">1356</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-1357"><a href="#Group-1357"><span class="linenos">1357</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-1358"><a href="#Group-1358"><span class="linenos">1358</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-1359"><a href="#Group-1359"><span class="linenos">1359</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-1360"><a href="#Group-1360"><span class="linenos">1360</span></a> <span class="p">}</span>
</span></pre></div>
@@ -15768,8 +16066,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Lambda"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lambda-1342"><a href="#Lambda-1342"><span class="linenos">1342</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-1343"><a href="#Lambda-1343"><span class="linenos">1343</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1363"><a href="#Lambda-1363"><span class="linenos">1363</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-1364"><a href="#Lambda-1364"><span class="linenos">1364</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -15832,8 +16130,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Limit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Limit-1346"><a href="#Limit-1346"><span class="linenos">1346</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-1347"><a href="#Limit-1347"><span class="linenos">1347</span></a> <span class="n">arg_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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Limit-1367"><a href="#Limit-1367"><span class="linenos">1367</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-1368"><a href="#Limit-1368"><span class="linenos">1368</span></a> <span class="n">arg_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></pre></div>
@@ -15896,24 +16194,24 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Literal"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Literal-1350"><a href="#Literal-1350"><span class="linenos">1350</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-1351"><a href="#Literal-1351"><span class="linenos">1351</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1352"><a href="#Literal-1352"><span class="linenos">1352</span></a>
-</span><span id="Literal-1353"><a href="#Literal-1353"><span class="linenos">1353</span></a> <span class="nd">@property</span>
-</span><span id="Literal-1354"><a href="#Literal-1354"><span class="linenos">1354</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-1355"><a href="#Literal-1355"><span class="linenos">1355</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-1356"><a href="#Literal-1356"><span class="linenos">1356</span></a>
-</span><span id="Literal-1357"><a href="#Literal-1357"><span class="linenos">1357</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal-1358"><a href="#Literal-1358"><span class="linenos">1358</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-1359"><a href="#Literal-1359"><span class="linenos">1359</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-1360"><a href="#Literal-1360"><span class="linenos">1360</span></a>
-</span><span id="Literal-1361"><a href="#Literal-1361"><span class="linenos">1361</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal-1362"><a href="#Literal-1362"><span class="linenos">1362</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-1363"><a href="#Literal-1363"><span class="linenos">1363</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-1364"><a href="#Literal-1364"><span class="linenos">1364</span></a>
-</span><span id="Literal-1365"><a href="#Literal-1365"><span class="linenos">1365</span></a> <span class="nd">@property</span>
-</span><span id="Literal-1366"><a href="#Literal-1366"><span class="linenos">1366</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Literal-1367"><a href="#Literal-1367"><span class="linenos">1367</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-1371"><a href="#Literal-1371"><span class="linenos">1371</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-1372"><a href="#Literal-1372"><span class="linenos">1372</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1373"><a href="#Literal-1373"><span class="linenos">1373</span></a>
+</span><span id="Literal-1374"><a href="#Literal-1374"><span class="linenos">1374</span></a> <span class="nd">@property</span>
+</span><span id="Literal-1375"><a href="#Literal-1375"><span class="linenos">1375</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-1376"><a href="#Literal-1376"><span class="linenos">1376</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-1377"><a href="#Literal-1377"><span class="linenos">1377</span></a>
+</span><span id="Literal-1378"><a href="#Literal-1378"><span class="linenos">1378</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal-1379"><a href="#Literal-1379"><span class="linenos">1379</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-1380"><a href="#Literal-1380"><span class="linenos">1380</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-1381"><a href="#Literal-1381"><span class="linenos">1381</span></a>
+</span><span id="Literal-1382"><a href="#Literal-1382"><span class="linenos">1382</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal-1383"><a href="#Literal-1383"><span class="linenos">1383</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-1384"><a href="#Literal-1384"><span class="linenos">1384</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-1385"><a href="#Literal-1385"><span class="linenos">1385</span></a>
+</span><span id="Literal-1386"><a href="#Literal-1386"><span class="linenos">1386</span></a> <span class="nd">@property</span>
+</span><span id="Literal-1387"><a href="#Literal-1387"><span class="linenos">1387</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Literal-1388"><a href="#Literal-1388"><span class="linenos">1388</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -15931,9 +16229,9 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Literal.number"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.number-1357"><a href="#Literal.number-1357"><span class="linenos">1357</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal.number-1358"><a href="#Literal.number-1358"><span class="linenos">1358</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-1359"><a href="#Literal.number-1359"><span class="linenos">1359</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-1378"><a href="#Literal.number-1378"><span class="linenos">1378</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal.number-1379"><a href="#Literal.number-1379"><span class="linenos">1379</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-1380"><a href="#Literal.number-1380"><span class="linenos">1380</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>
@@ -15952,9 +16250,9 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Literal.string"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.string-1361"><a href="#Literal.string-1361"><span class="linenos">1361</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal.string-1362"><a href="#Literal.string-1362"><span class="linenos">1362</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-1363"><a href="#Literal.string-1363"><span class="linenos">1363</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-1382"><a href="#Literal.string-1382"><span class="linenos">1382</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal.string-1383"><a href="#Literal.string-1383"><span class="linenos">1383</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-1384"><a href="#Literal.string-1384"><span class="linenos">1384</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>
@@ -16053,100 +16351,105 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Join"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join-1370"><a href="#Join-1370"><span class="linenos">1370</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-1371"><a href="#Join-1371"><span class="linenos">1371</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Join-1372"><a href="#Join-1372"><span class="linenos">1372</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-1373"><a href="#Join-1373"><span class="linenos">1373</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-1374"><a href="#Join-1374"><span class="linenos">1374</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-1375"><a href="#Join-1375"><span class="linenos">1375</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-1376"><a href="#Join-1376"><span class="linenos">1376</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-1377"><a href="#Join-1377"><span class="linenos">1377</span></a> <span class="s2">&quot;natural&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Join-1378"><a href="#Join-1378"><span class="linenos">1378</span></a> <span class="p">}</span>
-</span><span id="Join-1379"><a href="#Join-1379"><span class="linenos">1379</span></a>
-</span><span id="Join-1380"><a href="#Join-1380"><span class="linenos">1380</span></a> <span class="nd">@property</span>
-</span><span id="Join-1381"><a href="#Join-1381"><span class="linenos">1381</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><span id="Join-1382"><a href="#Join-1382"><span class="linenos">1382</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-1383"><a href="#Join-1383"><span class="linenos">1383</span></a>
-</span><span id="Join-1384"><a href="#Join-1384"><span class="linenos">1384</span></a> <span class="nd">@property</span>
-</span><span id="Join-1385"><a href="#Join-1385"><span class="linenos">1385</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><span id="Join-1386"><a href="#Join-1386"><span class="linenos">1386</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-1387"><a href="#Join-1387"><span class="linenos">1387</span></a>
-</span><span id="Join-1388"><a href="#Join-1388"><span class="linenos">1388</span></a> <span class="nd">@property</span>
-</span><span id="Join-1389"><a href="#Join-1389"><span class="linenos">1389</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><span id="Join-1390"><a href="#Join-1390"><span class="linenos">1390</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-1391"><a href="#Join-1391"><span class="linenos">1391</span></a>
-</span><span id="Join-1392"><a href="#Join-1392"><span class="linenos">1392</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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><span id="Join-1393"><a href="#Join-1393"><span class="linenos">1393</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join-1394"><a href="#Join-1394"><span class="linenos">1394</span></a><span class="sd"> Append to or set the ON expressions.</span>
-</span><span id="Join-1395"><a href="#Join-1395"><span class="linenos">1395</span></a>
-</span><span id="Join-1396"><a href="#Join-1396"><span class="linenos">1396</span></a><span class="sd"> Example:</span>
-</span><span id="Join-1397"><a href="#Join-1397"><span class="linenos">1397</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join-1398"><a href="#Join-1398"><span class="linenos">1398</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-1399"><a href="#Join-1399"><span class="linenos">1399</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
-</span><span id="Join-1400"><a href="#Join-1400"><span class="linenos">1400</span></a>
-</span><span id="Join-1401"><a href="#Join-1401"><span class="linenos">1401</span></a><span class="sd"> Args:</span>
-</span><span id="Join-1402"><a href="#Join-1402"><span class="linenos">1402</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Join-1403"><a href="#Join-1403"><span class="linenos">1403</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join-1404"><a href="#Join-1404"><span class="linenos">1404</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Join-1405"><a href="#Join-1405"><span class="linenos">1405</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Join-1406"><a href="#Join-1406"><span class="linenos">1406</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join-1407"><a href="#Join-1407"><span class="linenos">1407</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Join-1408"><a href="#Join-1408"><span class="linenos">1408</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Join-1409"><a href="#Join-1409"><span class="linenos">1409</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Join-1410"><a href="#Join-1410"><span class="linenos">1410</span></a>
-</span><span id="Join-1411"><a href="#Join-1411"><span class="linenos">1411</span></a><span class="sd"> Returns:</span>
-</span><span id="Join-1412"><a href="#Join-1412"><span class="linenos">1412</span></a><span class="sd"> Join: the modified join expression.</span>
-</span><span id="Join-1413"><a href="#Join-1413"><span class="linenos">1413</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join-1414"><a href="#Join-1414"><span class="linenos">1414</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-1415"><a href="#Join-1415"><span class="linenos">1415</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join-1416"><a href="#Join-1416"><span class="linenos">1416</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Join-1417"><a href="#Join-1417"><span class="linenos">1417</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-1418"><a href="#Join-1418"><span class="linenos">1418</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Join-1419"><a href="#Join-1419"><span class="linenos">1419</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Join-1420"><a href="#Join-1420"><span class="linenos">1420</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Join-1421"><a href="#Join-1421"><span class="linenos">1421</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join-1422"><a href="#Join-1422"><span class="linenos">1422</span></a> <span class="p">)</span>
-</span><span id="Join-1423"><a href="#Join-1423"><span class="linenos">1423</span></a>
-</span><span id="Join-1424"><a href="#Join-1424"><span class="linenos">1424</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-1425"><a href="#Join-1425"><span class="linenos">1425</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-1391"><a href="#Join-1391"><span class="linenos">1391</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-1392"><a href="#Join-1392"><span class="linenos">1392</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Join-1393"><a href="#Join-1393"><span class="linenos">1393</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-1394"><a href="#Join-1394"><span class="linenos">1394</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-1395"><a href="#Join-1395"><span class="linenos">1395</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-1396"><a href="#Join-1396"><span class="linenos">1396</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-1397"><a href="#Join-1397"><span class="linenos">1397</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-1398"><a href="#Join-1398"><span class="linenos">1398</span></a> <span class="s2">&quot;natural&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Join-1399"><a href="#Join-1399"><span class="linenos">1399</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-1400"><a href="#Join-1400"><span class="linenos">1400</span></a> <span class="p">}</span>
+</span><span id="Join-1401"><a href="#Join-1401"><span class="linenos">1401</span></a>
+</span><span id="Join-1402"><a href="#Join-1402"><span class="linenos">1402</span></a> <span class="nd">@property</span>
+</span><span id="Join-1403"><a href="#Join-1403"><span class="linenos">1403</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><span id="Join-1404"><a href="#Join-1404"><span class="linenos">1404</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-1405"><a href="#Join-1405"><span class="linenos">1405</span></a>
+</span><span id="Join-1406"><a href="#Join-1406"><span class="linenos">1406</span></a> <span class="nd">@property</span>
+</span><span id="Join-1407"><a href="#Join-1407"><span class="linenos">1407</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><span id="Join-1408"><a href="#Join-1408"><span class="linenos">1408</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-1409"><a href="#Join-1409"><span class="linenos">1409</span></a>
+</span><span id="Join-1410"><a href="#Join-1410"><span class="linenos">1410</span></a> <span class="nd">@property</span>
+</span><span id="Join-1411"><a href="#Join-1411"><span class="linenos">1411</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><span id="Join-1412"><a href="#Join-1412"><span class="linenos">1412</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-1413"><a href="#Join-1413"><span class="linenos">1413</span></a>
+</span><span id="Join-1414"><a href="#Join-1414"><span class="linenos">1414</span></a> <span class="nd">@property</span>
+</span><span id="Join-1415"><a href="#Join-1415"><span class="linenos">1415</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><span id="Join-1416"><a href="#Join-1416"><span class="linenos">1416</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-1417"><a href="#Join-1417"><span class="linenos">1417</span></a>
+</span><span id="Join-1418"><a href="#Join-1418"><span class="linenos">1418</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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><span id="Join-1419"><a href="#Join-1419"><span class="linenos">1419</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join-1420"><a href="#Join-1420"><span class="linenos">1420</span></a><span class="sd"> Append to or set the ON expressions.</span>
+</span><span id="Join-1421"><a href="#Join-1421"><span class="linenos">1421</span></a>
+</span><span id="Join-1422"><a href="#Join-1422"><span class="linenos">1422</span></a><span class="sd"> Example:</span>
+</span><span id="Join-1423"><a href="#Join-1423"><span class="linenos">1423</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join-1424"><a href="#Join-1424"><span class="linenos">1424</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-1425"><a href="#Join-1425"><span class="linenos">1425</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
</span><span id="Join-1426"><a href="#Join-1426"><span class="linenos">1426</span></a>
-</span><span id="Join-1427"><a href="#Join-1427"><span class="linenos">1427</span></a> <span class="k">return</span> <span class="n">join</span>
-</span><span id="Join-1428"><a href="#Join-1428"><span class="linenos">1428</span></a>
-</span><span id="Join-1429"><a href="#Join-1429"><span class="linenos">1429</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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><span id="Join-1430"><a href="#Join-1430"><span class="linenos">1430</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join-1431"><a href="#Join-1431"><span class="linenos">1431</span></a><span class="sd"> Append to or set the USING expressions.</span>
-</span><span id="Join-1432"><a href="#Join-1432"><span class="linenos">1432</span></a>
-</span><span id="Join-1433"><a href="#Join-1433"><span class="linenos">1433</span></a><span class="sd"> Example:</span>
-</span><span id="Join-1434"><a href="#Join-1434"><span class="linenos">1434</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join-1435"><a href="#Join-1435"><span class="linenos">1435</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-1436"><a href="#Join-1436"><span class="linenos">1436</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
-</span><span id="Join-1437"><a href="#Join-1437"><span class="linenos">1437</span></a>
-</span><span id="Join-1438"><a href="#Join-1438"><span class="linenos">1438</span></a><span class="sd"> Args:</span>
-</span><span id="Join-1439"><a href="#Join-1439"><span class="linenos">1439</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Join-1440"><a href="#Join-1440"><span class="linenos">1440</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join-1441"><a href="#Join-1441"><span class="linenos">1441</span></a><span class="sd"> append (bool): if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
-</span><span id="Join-1442"><a href="#Join-1442"><span class="linenos">1442</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join-1443"><a href="#Join-1443"><span class="linenos">1443</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Join-1444"><a href="#Join-1444"><span class="linenos">1444</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Join-1445"><a href="#Join-1445"><span class="linenos">1445</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Join-1446"><a href="#Join-1446"><span class="linenos">1446</span></a>
-</span><span id="Join-1447"><a href="#Join-1447"><span class="linenos">1447</span></a><span class="sd"> Returns:</span>
-</span><span id="Join-1448"><a href="#Join-1448"><span class="linenos">1448</span></a><span class="sd"> Join: the modified join expression.</span>
-</span><span id="Join-1449"><a href="#Join-1449"><span class="linenos">1449</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join-1450"><a href="#Join-1450"><span class="linenos">1450</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-1451"><a href="#Join-1451"><span class="linenos">1451</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join-1452"><a href="#Join-1452"><span class="linenos">1452</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Join-1453"><a href="#Join-1453"><span class="linenos">1453</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-1454"><a href="#Join-1454"><span class="linenos">1454</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Join-1455"><a href="#Join-1455"><span class="linenos">1455</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Join-1456"><a href="#Join-1456"><span class="linenos">1456</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Join-1457"><a href="#Join-1457"><span class="linenos">1457</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join-1458"><a href="#Join-1458"><span class="linenos">1458</span></a> <span class="p">)</span>
-</span><span id="Join-1459"><a href="#Join-1459"><span class="linenos">1459</span></a>
-</span><span id="Join-1460"><a href="#Join-1460"><span class="linenos">1460</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-1461"><a href="#Join-1461"><span class="linenos">1461</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-1462"><a href="#Join-1462"><span class="linenos">1462</span></a>
-</span><span id="Join-1463"><a href="#Join-1463"><span class="linenos">1463</span></a> <span class="k">return</span> <span class="n">join</span>
+</span><span id="Join-1427"><a href="#Join-1427"><span class="linenos">1427</span></a><span class="sd"> Args:</span>
+</span><span id="Join-1428"><a href="#Join-1428"><span class="linenos">1428</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Join-1429"><a href="#Join-1429"><span class="linenos">1429</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join-1430"><a href="#Join-1430"><span class="linenos">1430</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Join-1431"><a href="#Join-1431"><span class="linenos">1431</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Join-1432"><a href="#Join-1432"><span class="linenos">1432</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join-1433"><a href="#Join-1433"><span class="linenos">1433</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="Join-1434"><a href="#Join-1434"><span class="linenos">1434</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Join-1435"><a href="#Join-1435"><span class="linenos">1435</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Join-1436"><a href="#Join-1436"><span class="linenos">1436</span></a>
+</span><span id="Join-1437"><a href="#Join-1437"><span class="linenos">1437</span></a><span class="sd"> Returns:</span>
+</span><span id="Join-1438"><a href="#Join-1438"><span class="linenos">1438</span></a><span class="sd"> Join: the modified join expression.</span>
+</span><span id="Join-1439"><a href="#Join-1439"><span class="linenos">1439</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join-1440"><a href="#Join-1440"><span class="linenos">1440</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-1441"><a href="#Join-1441"><span class="linenos">1441</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join-1442"><a href="#Join-1442"><span class="linenos">1442</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Join-1443"><a href="#Join-1443"><span class="linenos">1443</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-1444"><a href="#Join-1444"><span class="linenos">1444</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Join-1445"><a href="#Join-1445"><span class="linenos">1445</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Join-1446"><a href="#Join-1446"><span class="linenos">1446</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Join-1447"><a href="#Join-1447"><span class="linenos">1447</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join-1448"><a href="#Join-1448"><span class="linenos">1448</span></a> <span class="p">)</span>
+</span><span id="Join-1449"><a href="#Join-1449"><span class="linenos">1449</span></a>
+</span><span id="Join-1450"><a href="#Join-1450"><span class="linenos">1450</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-1451"><a href="#Join-1451"><span class="linenos">1451</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-1452"><a href="#Join-1452"><span class="linenos">1452</span></a>
+</span><span id="Join-1453"><a href="#Join-1453"><span class="linenos">1453</span></a> <span class="k">return</span> <span class="n">join</span>
+</span><span id="Join-1454"><a href="#Join-1454"><span class="linenos">1454</span></a>
+</span><span id="Join-1455"><a href="#Join-1455"><span class="linenos">1455</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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><span id="Join-1456"><a href="#Join-1456"><span class="linenos">1456</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join-1457"><a href="#Join-1457"><span class="linenos">1457</span></a><span class="sd"> Append to or set the USING expressions.</span>
+</span><span id="Join-1458"><a href="#Join-1458"><span class="linenos">1458</span></a>
+</span><span id="Join-1459"><a href="#Join-1459"><span class="linenos">1459</span></a><span class="sd"> Example:</span>
+</span><span id="Join-1460"><a href="#Join-1460"><span class="linenos">1460</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join-1461"><a href="#Join-1461"><span class="linenos">1461</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-1462"><a href="#Join-1462"><span class="linenos">1462</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
+</span><span id="Join-1463"><a href="#Join-1463"><span class="linenos">1463</span></a>
+</span><span id="Join-1464"><a href="#Join-1464"><span class="linenos">1464</span></a><span class="sd"> Args:</span>
+</span><span id="Join-1465"><a href="#Join-1465"><span class="linenos">1465</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Join-1466"><a href="#Join-1466"><span class="linenos">1466</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join-1467"><a href="#Join-1467"><span class="linenos">1467</span></a><span class="sd"> append (bool): if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
+</span><span id="Join-1468"><a href="#Join-1468"><span class="linenos">1468</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join-1469"><a href="#Join-1469"><span class="linenos">1469</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="Join-1470"><a href="#Join-1470"><span class="linenos">1470</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Join-1471"><a href="#Join-1471"><span class="linenos">1471</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Join-1472"><a href="#Join-1472"><span class="linenos">1472</span></a>
+</span><span id="Join-1473"><a href="#Join-1473"><span class="linenos">1473</span></a><span class="sd"> Returns:</span>
+</span><span id="Join-1474"><a href="#Join-1474"><span class="linenos">1474</span></a><span class="sd"> Join: the modified join expression.</span>
+</span><span id="Join-1475"><a href="#Join-1475"><span class="linenos">1475</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join-1476"><a href="#Join-1476"><span class="linenos">1476</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-1477"><a href="#Join-1477"><span class="linenos">1477</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join-1478"><a href="#Join-1478"><span class="linenos">1478</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Join-1479"><a href="#Join-1479"><span class="linenos">1479</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-1480"><a href="#Join-1480"><span class="linenos">1480</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Join-1481"><a href="#Join-1481"><span class="linenos">1481</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Join-1482"><a href="#Join-1482"><span class="linenos">1482</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Join-1483"><a href="#Join-1483"><span class="linenos">1483</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join-1484"><a href="#Join-1484"><span class="linenos">1484</span></a> <span class="p">)</span>
+</span><span id="Join-1485"><a href="#Join-1485"><span class="linenos">1485</span></a>
+</span><span id="Join-1486"><a href="#Join-1486"><span class="linenos">1486</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-1487"><a href="#Join-1487"><span class="linenos">1487</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-1488"><a href="#Join-1488"><span class="linenos">1488</span></a>
+</span><span id="Join-1489"><a href="#Join-1489"><span class="linenos">1489</span></a> <span class="k">return</span> <span class="n">join</span>
</span></pre></div>
@@ -16163,42 +16466,42 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Join.on"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join.on-1392"><a href="#Join.on-1392"><span class="linenos">1392</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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><span id="Join.on-1393"><a href="#Join.on-1393"><span class="linenos">1393</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join.on-1394"><a href="#Join.on-1394"><span class="linenos">1394</span></a><span class="sd"> Append to or set the ON expressions.</span>
-</span><span id="Join.on-1395"><a href="#Join.on-1395"><span class="linenos">1395</span></a>
-</span><span id="Join.on-1396"><a href="#Join.on-1396"><span class="linenos">1396</span></a><span class="sd"> Example:</span>
-</span><span id="Join.on-1397"><a href="#Join.on-1397"><span class="linenos">1397</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join.on-1398"><a href="#Join.on-1398"><span class="linenos">1398</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-1399"><a href="#Join.on-1399"><span class="linenos">1399</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
-</span><span id="Join.on-1400"><a href="#Join.on-1400"><span class="linenos">1400</span></a>
-</span><span id="Join.on-1401"><a href="#Join.on-1401"><span class="linenos">1401</span></a><span class="sd"> Args:</span>
-</span><span id="Join.on-1402"><a href="#Join.on-1402"><span class="linenos">1402</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Join.on-1403"><a href="#Join.on-1403"><span class="linenos">1403</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join.on-1404"><a href="#Join.on-1404"><span class="linenos">1404</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Join.on-1405"><a href="#Join.on-1405"><span class="linenos">1405</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Join.on-1406"><a href="#Join.on-1406"><span class="linenos">1406</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join.on-1407"><a href="#Join.on-1407"><span class="linenos">1407</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Join.on-1408"><a href="#Join.on-1408"><span class="linenos">1408</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Join.on-1409"><a href="#Join.on-1409"><span class="linenos">1409</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Join.on-1410"><a href="#Join.on-1410"><span class="linenos">1410</span></a>
-</span><span id="Join.on-1411"><a href="#Join.on-1411"><span class="linenos">1411</span></a><span class="sd"> Returns:</span>
-</span><span id="Join.on-1412"><a href="#Join.on-1412"><span class="linenos">1412</span></a><span class="sd"> Join: the modified join expression.</span>
-</span><span id="Join.on-1413"><a href="#Join.on-1413"><span class="linenos">1413</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join.on-1414"><a href="#Join.on-1414"><span class="linenos">1414</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-1415"><a href="#Join.on-1415"><span class="linenos">1415</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join.on-1416"><a href="#Join.on-1416"><span class="linenos">1416</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-1417"><a href="#Join.on-1417"><span class="linenos">1417</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-1418"><a href="#Join.on-1418"><span class="linenos">1418</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-1419"><a href="#Join.on-1419"><span class="linenos">1419</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-1420"><a href="#Join.on-1420"><span class="linenos">1420</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-1421"><a href="#Join.on-1421"><span class="linenos">1421</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join.on-1422"><a href="#Join.on-1422"><span class="linenos">1422</span></a> <span class="p">)</span>
-</span><span id="Join.on-1423"><a href="#Join.on-1423"><span class="linenos">1423</span></a>
-</span><span id="Join.on-1424"><a href="#Join.on-1424"><span class="linenos">1424</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-1425"><a href="#Join.on-1425"><span class="linenos">1425</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.on-1418"><a href="#Join.on-1418"><span class="linenos">1418</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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><span id="Join.on-1419"><a href="#Join.on-1419"><span class="linenos">1419</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join.on-1420"><a href="#Join.on-1420"><span class="linenos">1420</span></a><span class="sd"> Append to or set the ON expressions.</span>
+</span><span id="Join.on-1421"><a href="#Join.on-1421"><span class="linenos">1421</span></a>
+</span><span id="Join.on-1422"><a href="#Join.on-1422"><span class="linenos">1422</span></a><span class="sd"> Example:</span>
+</span><span id="Join.on-1423"><a href="#Join.on-1423"><span class="linenos">1423</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join.on-1424"><a href="#Join.on-1424"><span class="linenos">1424</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-1425"><a href="#Join.on-1425"><span class="linenos">1425</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
</span><span id="Join.on-1426"><a href="#Join.on-1426"><span class="linenos">1426</span></a>
-</span><span id="Join.on-1427"><a href="#Join.on-1427"><span class="linenos">1427</span></a> <span class="k">return</span> <span class="n">join</span>
+</span><span id="Join.on-1427"><a href="#Join.on-1427"><span class="linenos">1427</span></a><span class="sd"> Args:</span>
+</span><span id="Join.on-1428"><a href="#Join.on-1428"><span class="linenos">1428</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Join.on-1429"><a href="#Join.on-1429"><span class="linenos">1429</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join.on-1430"><a href="#Join.on-1430"><span class="linenos">1430</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Join.on-1431"><a href="#Join.on-1431"><span class="linenos">1431</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Join.on-1432"><a href="#Join.on-1432"><span class="linenos">1432</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join.on-1433"><a href="#Join.on-1433"><span class="linenos">1433</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="Join.on-1434"><a href="#Join.on-1434"><span class="linenos">1434</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Join.on-1435"><a href="#Join.on-1435"><span class="linenos">1435</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Join.on-1436"><a href="#Join.on-1436"><span class="linenos">1436</span></a>
+</span><span id="Join.on-1437"><a href="#Join.on-1437"><span class="linenos">1437</span></a><span class="sd"> Returns:</span>
+</span><span id="Join.on-1438"><a href="#Join.on-1438"><span class="linenos">1438</span></a><span class="sd"> Join: the modified join expression.</span>
+</span><span id="Join.on-1439"><a href="#Join.on-1439"><span class="linenos">1439</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join.on-1440"><a href="#Join.on-1440"><span class="linenos">1440</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-1441"><a href="#Join.on-1441"><span class="linenos">1441</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join.on-1442"><a href="#Join.on-1442"><span class="linenos">1442</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-1443"><a href="#Join.on-1443"><span class="linenos">1443</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-1444"><a href="#Join.on-1444"><span class="linenos">1444</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-1445"><a href="#Join.on-1445"><span class="linenos">1445</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-1446"><a href="#Join.on-1446"><span class="linenos">1446</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-1447"><a href="#Join.on-1447"><span class="linenos">1447</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join.on-1448"><a href="#Join.on-1448"><span class="linenos">1448</span></a> <span class="p">)</span>
+</span><span id="Join.on-1449"><a href="#Join.on-1449"><span class="linenos">1449</span></a>
+</span><span id="Join.on-1450"><a href="#Join.on-1450"><span class="linenos">1450</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-1451"><a href="#Join.on-1451"><span class="linenos">1451</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-1452"><a href="#Join.on-1452"><span class="linenos">1452</span></a>
+</span><span id="Join.on-1453"><a href="#Join.on-1453"><span class="linenos">1453</span></a> <span class="k">return</span> <span class="n">join</span>
</span></pre></div>
@@ -16248,41 +16551,41 @@ 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-1429"><a href="#Join.using-1429"><span class="linenos">1429</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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><span id="Join.using-1430"><a href="#Join.using-1430"><span class="linenos">1430</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join.using-1431"><a href="#Join.using-1431"><span class="linenos">1431</span></a><span class="sd"> Append to or set the USING expressions.</span>
-</span><span id="Join.using-1432"><a href="#Join.using-1432"><span class="linenos">1432</span></a>
-</span><span id="Join.using-1433"><a href="#Join.using-1433"><span class="linenos">1433</span></a><span class="sd"> Example:</span>
-</span><span id="Join.using-1434"><a href="#Join.using-1434"><span class="linenos">1434</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join.using-1435"><a href="#Join.using-1435"><span class="linenos">1435</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-1436"><a href="#Join.using-1436"><span class="linenos">1436</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
-</span><span id="Join.using-1437"><a href="#Join.using-1437"><span class="linenos">1437</span></a>
-</span><span id="Join.using-1438"><a href="#Join.using-1438"><span class="linenos">1438</span></a><span class="sd"> Args:</span>
-</span><span id="Join.using-1439"><a href="#Join.using-1439"><span class="linenos">1439</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Join.using-1440"><a href="#Join.using-1440"><span class="linenos">1440</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join.using-1441"><a href="#Join.using-1441"><span class="linenos">1441</span></a><span class="sd"> append (bool): if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
-</span><span id="Join.using-1442"><a href="#Join.using-1442"><span class="linenos">1442</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join.using-1443"><a href="#Join.using-1443"><span class="linenos">1443</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Join.using-1444"><a href="#Join.using-1444"><span class="linenos">1444</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Join.using-1445"><a href="#Join.using-1445"><span class="linenos">1445</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Join.using-1446"><a href="#Join.using-1446"><span class="linenos">1446</span></a>
-</span><span id="Join.using-1447"><a href="#Join.using-1447"><span class="linenos">1447</span></a><span class="sd"> Returns:</span>
-</span><span id="Join.using-1448"><a href="#Join.using-1448"><span class="linenos">1448</span></a><span class="sd"> Join: the modified join expression.</span>
-</span><span id="Join.using-1449"><a href="#Join.using-1449"><span class="linenos">1449</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join.using-1450"><a href="#Join.using-1450"><span class="linenos">1450</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-1451"><a href="#Join.using-1451"><span class="linenos">1451</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join.using-1452"><a href="#Join.using-1452"><span class="linenos">1452</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-1453"><a href="#Join.using-1453"><span class="linenos">1453</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-1454"><a href="#Join.using-1454"><span class="linenos">1454</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-1455"><a href="#Join.using-1455"><span class="linenos">1455</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-1456"><a href="#Join.using-1456"><span class="linenos">1456</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-1457"><a href="#Join.using-1457"><span class="linenos">1457</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join.using-1458"><a href="#Join.using-1458"><span class="linenos">1458</span></a> <span class="p">)</span>
-</span><span id="Join.using-1459"><a href="#Join.using-1459"><span class="linenos">1459</span></a>
-</span><span id="Join.using-1460"><a href="#Join.using-1460"><span class="linenos">1460</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-1461"><a href="#Join.using-1461"><span class="linenos">1461</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-1462"><a href="#Join.using-1462"><span class="linenos">1462</span></a>
-</span><span id="Join.using-1463"><a href="#Join.using-1463"><span class="linenos">1463</span></a> <span class="k">return</span> <span class="n">join</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.using-1455"><a href="#Join.using-1455"><span class="linenos">1455</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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><span id="Join.using-1456"><a href="#Join.using-1456"><span class="linenos">1456</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join.using-1457"><a href="#Join.using-1457"><span class="linenos">1457</span></a><span class="sd"> Append to or set the USING expressions.</span>
+</span><span id="Join.using-1458"><a href="#Join.using-1458"><span class="linenos">1458</span></a>
+</span><span id="Join.using-1459"><a href="#Join.using-1459"><span class="linenos">1459</span></a><span class="sd"> Example:</span>
+</span><span id="Join.using-1460"><a href="#Join.using-1460"><span class="linenos">1460</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join.using-1461"><a href="#Join.using-1461"><span class="linenos">1461</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-1462"><a href="#Join.using-1462"><span class="linenos">1462</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
+</span><span id="Join.using-1463"><a href="#Join.using-1463"><span class="linenos">1463</span></a>
+</span><span id="Join.using-1464"><a href="#Join.using-1464"><span class="linenos">1464</span></a><span class="sd"> Args:</span>
+</span><span id="Join.using-1465"><a href="#Join.using-1465"><span class="linenos">1465</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Join.using-1466"><a href="#Join.using-1466"><span class="linenos">1466</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join.using-1467"><a href="#Join.using-1467"><span class="linenos">1467</span></a><span class="sd"> append (bool): if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
+</span><span id="Join.using-1468"><a href="#Join.using-1468"><span class="linenos">1468</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join.using-1469"><a href="#Join.using-1469"><span class="linenos">1469</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="Join.using-1470"><a href="#Join.using-1470"><span class="linenos">1470</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Join.using-1471"><a href="#Join.using-1471"><span class="linenos">1471</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Join.using-1472"><a href="#Join.using-1472"><span class="linenos">1472</span></a>
+</span><span id="Join.using-1473"><a href="#Join.using-1473"><span class="linenos">1473</span></a><span class="sd"> Returns:</span>
+</span><span id="Join.using-1474"><a href="#Join.using-1474"><span class="linenos">1474</span></a><span class="sd"> Join: the modified join expression.</span>
+</span><span id="Join.using-1475"><a href="#Join.using-1475"><span class="linenos">1475</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join.using-1476"><a href="#Join.using-1476"><span class="linenos">1476</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-1477"><a href="#Join.using-1477"><span class="linenos">1477</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join.using-1478"><a href="#Join.using-1478"><span class="linenos">1478</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-1479"><a href="#Join.using-1479"><span class="linenos">1479</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-1480"><a href="#Join.using-1480"><span class="linenos">1480</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-1481"><a href="#Join.using-1481"><span class="linenos">1481</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-1482"><a href="#Join.using-1482"><span class="linenos">1482</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-1483"><a href="#Join.using-1483"><span class="linenos">1483</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join.using-1484"><a href="#Join.using-1484"><span class="linenos">1484</span></a> <span class="p">)</span>
+</span><span id="Join.using-1485"><a href="#Join.using-1485"><span class="linenos">1485</span></a>
+</span><span id="Join.using-1486"><a href="#Join.using-1486"><span class="linenos">1486</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-1487"><a href="#Join.using-1487"><span class="linenos">1487</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-1488"><a href="#Join.using-1488"><span class="linenos">1488</span></a>
+</span><span id="Join.using-1489"><a href="#Join.using-1489"><span class="linenos">1489</span></a> <span class="k">return</span> <span class="n">join</span>
</span></pre></div>
@@ -16377,8 +16680,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Lateral"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lateral-1466"><a href="#Lateral-1466"><span class="linenos">1466</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-1467"><a href="#Lateral-1467"><span class="linenos">1467</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;view&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;outer&quot;</span><span class="p">:</span> <span class="kc">False</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="Lateral-1492"><a href="#Lateral-1492"><span class="linenos">1492</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-1493"><a href="#Lateral-1493"><span class="linenos">1493</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;view&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;outer&quot;</span><span class="p">:</span> <span class="kc">False</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>
@@ -16447,16 +16750,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-1470"><a href="#MatchRecognize-1470"><span class="linenos">1470</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-1471"><a href="#MatchRecognize-1471"><span class="linenos">1471</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="MatchRecognize-1472"><a href="#MatchRecognize-1472"><span class="linenos">1472</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-1473"><a href="#MatchRecognize-1473"><span class="linenos">1473</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-1474"><a href="#MatchRecognize-1474"><span class="linenos">1474</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-1475"><a href="#MatchRecognize-1475"><span class="linenos">1475</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-1476"><a href="#MatchRecognize-1476"><span class="linenos">1476</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-1477"><a href="#MatchRecognize-1477"><span class="linenos">1477</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-1478"><a href="#MatchRecognize-1478"><span class="linenos">1478</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-1479"><a href="#MatchRecognize-1479"><span class="linenos">1479</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MatchRecognize-1496"><a href="#MatchRecognize-1496"><span class="linenos">1496</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-1497"><a href="#MatchRecognize-1497"><span class="linenos">1497</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="MatchRecognize-1498"><a href="#MatchRecognize-1498"><span class="linenos">1498</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-1499"><a href="#MatchRecognize-1499"><span class="linenos">1499</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-1500"><a href="#MatchRecognize-1500"><span class="linenos">1500</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-1501"><a href="#MatchRecognize-1501"><span class="linenos">1501</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-1502"><a href="#MatchRecognize-1502"><span class="linenos">1502</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-1503"><a href="#MatchRecognize-1503"><span class="linenos">1503</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-1504"><a href="#MatchRecognize-1504"><span class="linenos">1504</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-1505"><a href="#MatchRecognize-1505"><span class="linenos">1505</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-1506"><a href="#MatchRecognize-1506"><span class="linenos">1506</span></a> <span class="p">}</span>
</span></pre></div>
@@ -16519,8 +16823,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-1484"><a href="#Final-1484"><span class="linenos">1484</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-1485"><a href="#Final-1485"><span class="linenos">1485</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Final-1511"><a href="#Final-1511"><span class="linenos">1511</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-1512"><a href="#Final-1512"><span class="linenos">1512</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -16583,8 +16887,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-1488"><a href="#Offset-1488"><span class="linenos">1488</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-1489"><a href="#Offset-1489"><span class="linenos">1489</span></a> <span class="n">arg_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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Offset-1515"><a href="#Offset-1515"><span class="linenos">1515</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-1516"><a href="#Offset-1516"><span class="linenos">1516</span></a> <span class="n">arg_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></pre></div>
@@ -16647,8 +16951,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Order"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Order-1492"><a href="#Order-1492"><span class="linenos">1492</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-1493"><a href="#Order-1493"><span class="linenos">1493</span></a> <span class="n">arg_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">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Order-1519"><a href="#Order-1519"><span class="linenos">1519</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-1520"><a href="#Order-1520"><span class="linenos">1520</span></a> <span class="n">arg_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">True</span><span class="p">}</span>
</span></pre></div>
@@ -16711,8 +17015,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-1498"><a href="#Cluster-1498"><span class="linenos">1498</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-1499"><a href="#Cluster-1499"><span class="linenos">1499</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cluster-1525"><a href="#Cluster-1525"><span class="linenos">1525</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-1526"><a href="#Cluster-1526"><span class="linenos">1526</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -16775,8 +17079,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-1502"><a href="#Distribute-1502"><span class="linenos">1502</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-1503"><a href="#Distribute-1503"><span class="linenos">1503</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Distribute-1529"><a href="#Distribute-1529"><span class="linenos">1529</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-1530"><a href="#Distribute-1530"><span class="linenos">1530</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -16839,8 +17143,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-1506"><a href="#Sort-1506"><span class="linenos">1506</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-1507"><a href="#Sort-1507"><span class="linenos">1507</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sort-1533"><a href="#Sort-1533"><span class="linenos">1533</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-1534"><a href="#Sort-1534"><span class="linenos">1534</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -16903,8 +17207,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-1510"><a href="#Ordered-1510"><span class="linenos">1510</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-1511"><a href="#Ordered-1511"><span class="linenos">1511</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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">True</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Ordered-1537"><a href="#Ordered-1537"><span class="linenos">1537</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-1538"><a href="#Ordered-1538"><span class="linenos">1538</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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">True</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></pre></div>
@@ -16967,8 +17271,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-1514"><a href="#Property-1514"><span class="linenos">1514</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-1515"><a href="#Property-1515"><span class="linenos">1515</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1541"><a href="#Property-1541"><span class="linenos">1541</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-1542"><a href="#Property-1542"><span class="linenos">1542</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -17031,8 +17335,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#AfterJournalProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AfterJournalProperty-1518"><a href="#AfterJournalProperty-1518"><span class="linenos">1518</span></a><span class="k">class</span> <span class="nc">AfterJournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="AfterJournalProperty-1519"><a href="#AfterJournalProperty-1519"><span class="linenos">1519</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;dual&quot;</span><span class="p">:</span> <span class="kc">False</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AfterJournalProperty-1545"><a href="#AfterJournalProperty-1545"><span class="linenos">1545</span></a><span class="k">class</span> <span class="nc">AfterJournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="AfterJournalProperty-1546"><a href="#AfterJournalProperty-1546"><span class="linenos">1546</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;dual&quot;</span><span class="p">:</span> <span class="kc">False</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></pre></div>
@@ -17095,8 +17399,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-1522"><a href="#AlgorithmProperty-1522"><span class="linenos">1522</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-1523"><a href="#AlgorithmProperty-1523"><span class="linenos">1523</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1549"><a href="#AlgorithmProperty-1549"><span class="linenos">1549</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-1550"><a href="#AlgorithmProperty-1550"><span class="linenos">1550</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -17159,8 +17463,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-1526"><a href="#AutoIncrementProperty-1526"><span class="linenos">1526</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-1527"><a href="#AutoIncrementProperty-1527"><span class="linenos">1527</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1553"><a href="#AutoIncrementProperty-1553"><span class="linenos">1553</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-1554"><a href="#AutoIncrementProperty-1554"><span class="linenos">1554</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -17223,8 +17527,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#BlockCompressionProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BlockCompressionProperty-1530"><a href="#BlockCompressionProperty-1530"><span class="linenos">1530</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-1531"><a href="#BlockCompressionProperty-1531"><span class="linenos">1531</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;autotemp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;always&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">True</span><span class="p">,</span> <span class="s2">&quot;manual&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;never&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="BlockCompressionProperty-1557"><a href="#BlockCompressionProperty-1557"><span class="linenos">1557</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-1558"><a href="#BlockCompressionProperty-1558"><span class="linenos">1558</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;autotemp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;always&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">True</span><span class="p">,</span> <span class="s2">&quot;manual&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;never&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -17287,8 +17591,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-1534"><a href="#CharacterSetProperty-1534"><span class="linenos">1534</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-1535"><a href="#CharacterSetProperty-1535"><span class="linenos">1535</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1561"><a href="#CharacterSetProperty-1561"><span class="linenos">1561</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-1562"><a href="#CharacterSetProperty-1562"><span class="linenos">1562</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -17351,8 +17655,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-1538"><a href="#ChecksumProperty-1538"><span class="linenos">1538</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-1539"><a href="#ChecksumProperty-1539"><span class="linenos">1539</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-1565"><a href="#ChecksumProperty-1565"><span class="linenos">1565</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-1566"><a href="#ChecksumProperty-1566"><span class="linenos">1566</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>
@@ -17415,8 +17719,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-1542"><a href="#CollateProperty-1542"><span class="linenos">1542</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-1543"><a href="#CollateProperty-1543"><span class="linenos">1543</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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="CollateProperty-1569"><a href="#CollateProperty-1569"><span class="linenos">1569</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-1570"><a href="#CollateProperty-1570"><span class="linenos">1570</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -17479,8 +17783,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#DataBlocksizeProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataBlocksizeProperty-1546"><a href="#DataBlocksizeProperty-1546"><span class="linenos">1546</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-1547"><a href="#DataBlocksizeProperty-1547"><span class="linenos">1547</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;min&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="DataBlocksizeProperty-1573"><a href="#DataBlocksizeProperty-1573"><span class="linenos">1573</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-1574"><a href="#DataBlocksizeProperty-1574"><span class="linenos">1574</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;min&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>
@@ -17543,8 +17847,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-1550"><a href="#DefinerProperty-1550"><span class="linenos">1550</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-1551"><a href="#DefinerProperty-1551"><span class="linenos">1551</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1577"><a href="#DefinerProperty-1577"><span class="linenos">1577</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-1578"><a href="#DefinerProperty-1578"><span class="linenos">1578</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -17607,8 +17911,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-1554"><a href="#DistKeyProperty-1554"><span class="linenos">1554</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-1555"><a href="#DistKeyProperty-1555"><span class="linenos">1555</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1581"><a href="#DistKeyProperty-1581"><span class="linenos">1581</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-1582"><a href="#DistKeyProperty-1582"><span class="linenos">1582</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -17671,8 +17975,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-1558"><a href="#DistStyleProperty-1558"><span class="linenos">1558</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-1559"><a href="#DistStyleProperty-1559"><span class="linenos">1559</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1585"><a href="#DistStyleProperty-1585"><span class="linenos">1585</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-1586"><a href="#DistStyleProperty-1586"><span class="linenos">1586</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -17735,8 +18039,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-1562"><a href="#EngineProperty-1562"><span class="linenos">1562</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-1563"><a href="#EngineProperty-1563"><span class="linenos">1563</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1589"><a href="#EngineProperty-1589"><span class="linenos">1589</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-1590"><a href="#EngineProperty-1590"><span class="linenos">1590</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -17799,8 +18103,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-1566"><a href="#ExecuteAsProperty-1566"><span class="linenos">1566</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-1567"><a href="#ExecuteAsProperty-1567"><span class="linenos">1567</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1593"><a href="#ExecuteAsProperty-1593"><span class="linenos">1593</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-1594"><a href="#ExecuteAsProperty-1594"><span class="linenos">1594</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -17863,8 +18167,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-1570"><a href="#ExternalProperty-1570"><span class="linenos">1570</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-1571"><a href="#ExternalProperty-1571"><span class="linenos">1571</span></a> <span class="n">arg_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-1597"><a href="#ExternalProperty-1597"><span class="linenos">1597</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-1598"><a href="#ExternalProperty-1598"><span class="linenos">1598</span></a> <span class="n">arg_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>
@@ -17927,8 +18231,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-1574"><a href="#FallbackProperty-1574"><span class="linenos">1574</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-1575"><a href="#FallbackProperty-1575"><span class="linenos">1575</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-1601"><a href="#FallbackProperty-1601"><span class="linenos">1601</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-1602"><a href="#FallbackProperty-1602"><span class="linenos">1602</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>
@@ -17991,8 +18295,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-1578"><a href="#FileFormatProperty-1578"><span class="linenos">1578</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-1579"><a href="#FileFormatProperty-1579"><span class="linenos">1579</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1605"><a href="#FileFormatProperty-1605"><span class="linenos">1605</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-1606"><a href="#FileFormatProperty-1606"><span class="linenos">1606</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -18055,8 +18359,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-1582"><a href="#FreespaceProperty-1582"><span class="linenos">1582</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-1583"><a href="#FreespaceProperty-1583"><span class="linenos">1583</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1609"><a href="#FreespaceProperty-1609"><span class="linenos">1609</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-1610"><a href="#FreespaceProperty-1610"><span class="linenos">1610</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -18108,6 +18412,70 @@ Otherwise, this resets the expression.</li>
</dl>
</div>
</section>
+ <section id="InputOutputFormat">
+ <input id="InputOutputFormat-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">InputOutputFormat</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
+
+ <label class="view-source-button" for="InputOutputFormat-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#InputOutputFormat"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="InputOutputFormat-1613"><a href="#InputOutputFormat-1613"><span class="linenos">1613</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-1614"><a href="#InputOutputFormat-1614"><span class="linenos">1614</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>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="InputOutputFormat.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="InputOutputFormat.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="InputOutputFormat.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="InputOutputFormat.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="InputOutputFormat.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="InputOutputFormat.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="InputOutputFormat.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="InputOutputFormat.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="InputOutputFormat.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="InputOutputFormat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="InputOutputFormat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="InputOutputFormat.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="InputOutputFormat.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="InputOutputFormat.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="InputOutputFormat.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="InputOutputFormat.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="InputOutputFormat.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="InputOutputFormat.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="InputOutputFormat.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="InputOutputFormat.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="InputOutputFormat.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="InputOutputFormat.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="InputOutputFormat.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="InputOutputFormat.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="InputOutputFormat.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="InputOutputFormat.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="InputOutputFormat.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="InputOutputFormat.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="InputOutputFormat.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="InputOutputFormat.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="InputOutputFormat.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="InputOutputFormat.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="InputOutputFormat.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="InputOutputFormat.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="InputOutputFormat.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="InputOutputFormat.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="InputOutputFormat.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="IsolatedLoadingProperty">
<input id="IsolatedLoadingProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -18119,14 +18487,14 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#IsolatedLoadingProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IsolatedLoadingProperty-1586"><a href="#IsolatedLoadingProperty-1586"><span class="linenos">1586</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-1587"><a href="#IsolatedLoadingProperty-1587"><span class="linenos">1587</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="IsolatedLoadingProperty-1588"><a href="#IsolatedLoadingProperty-1588"><span class="linenos">1588</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="IsolatedLoadingProperty-1589"><a href="#IsolatedLoadingProperty-1589"><span class="linenos">1589</span></a> <span class="s2">&quot;concurrent&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="IsolatedLoadingProperty-1590"><a href="#IsolatedLoadingProperty-1590"><span class="linenos">1590</span></a> <span class="s2">&quot;for_all&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="IsolatedLoadingProperty-1591"><a href="#IsolatedLoadingProperty-1591"><span class="linenos">1591</span></a> <span class="s2">&quot;for_insert&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="IsolatedLoadingProperty-1592"><a href="#IsolatedLoadingProperty-1592"><span class="linenos">1592</span></a> <span class="s2">&quot;for_none&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="IsolatedLoadingProperty-1593"><a href="#IsolatedLoadingProperty-1593"><span class="linenos">1593</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IsolatedLoadingProperty-1617"><a href="#IsolatedLoadingProperty-1617"><span class="linenos">1617</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-1618"><a href="#IsolatedLoadingProperty-1618"><span class="linenos">1618</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="IsolatedLoadingProperty-1619"><a href="#IsolatedLoadingProperty-1619"><span class="linenos">1619</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="IsolatedLoadingProperty-1620"><a href="#IsolatedLoadingProperty-1620"><span class="linenos">1620</span></a> <span class="s2">&quot;concurrent&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="IsolatedLoadingProperty-1621"><a href="#IsolatedLoadingProperty-1621"><span class="linenos">1621</span></a> <span class="s2">&quot;for_all&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="IsolatedLoadingProperty-1622"><a href="#IsolatedLoadingProperty-1622"><span class="linenos">1622</span></a> <span class="s2">&quot;for_insert&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="IsolatedLoadingProperty-1623"><a href="#IsolatedLoadingProperty-1623"><span class="linenos">1623</span></a> <span class="s2">&quot;for_none&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="IsolatedLoadingProperty-1624"><a href="#IsolatedLoadingProperty-1624"><span class="linenos">1624</span></a> <span class="p">}</span>
</span></pre></div>
@@ -18189,8 +18557,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#JournalProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JournalProperty-1596"><a href="#JournalProperty-1596"><span class="linenos">1596</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-1597"><a href="#JournalProperty-1597"><span class="linenos">1597</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;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;before&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="JournalProperty-1627"><a href="#JournalProperty-1627"><span class="linenos">1627</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-1628"><a href="#JournalProperty-1628"><span class="linenos">1628</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;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -18253,8 +18621,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-1600"><a href="#LanguageProperty-1600"><span class="linenos">1600</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-1601"><a href="#LanguageProperty-1601"><span class="linenos">1601</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1631"><a href="#LanguageProperty-1631"><span class="linenos">1631</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-1632"><a href="#LanguageProperty-1632"><span class="linenos">1632</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -18317,8 +18685,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-1604"><a href="#LikeProperty-1604"><span class="linenos">1604</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-1605"><a href="#LikeProperty-1605"><span class="linenos">1605</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1635"><a href="#LikeProperty-1635"><span class="linenos">1635</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-1636"><a href="#LikeProperty-1636"><span class="linenos">1636</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -18381,8 +18749,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-1608"><a href="#LocationProperty-1608"><span class="linenos">1608</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-1609"><a href="#LocationProperty-1609"><span class="linenos">1609</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1639"><a href="#LocationProperty-1639"><span class="linenos">1639</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-1640"><a href="#LocationProperty-1640"><span class="linenos">1640</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -18445,14 +18813,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-1612"><a href="#LockingProperty-1612"><span class="linenos">1612</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-1613"><a href="#LockingProperty-1613"><span class="linenos">1613</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="LockingProperty-1614"><a href="#LockingProperty-1614"><span class="linenos">1614</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-1615"><a href="#LockingProperty-1615"><span class="linenos">1615</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-1616"><a href="#LockingProperty-1616"><span class="linenos">1616</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="LockingProperty-1617"><a href="#LockingProperty-1617"><span class="linenos">1617</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-1618"><a href="#LockingProperty-1618"><span class="linenos">1618</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-1619"><a href="#LockingProperty-1619"><span class="linenos">1619</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LockingProperty-1643"><a href="#LockingProperty-1643"><span class="linenos">1643</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-1644"><a href="#LockingProperty-1644"><span class="linenos">1644</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="LockingProperty-1645"><a href="#LockingProperty-1645"><span class="linenos">1645</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-1646"><a href="#LockingProperty-1646"><span class="linenos">1646</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-1647"><a href="#LockingProperty-1647"><span class="linenos">1647</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="LockingProperty-1648"><a href="#LockingProperty-1648"><span class="linenos">1648</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-1649"><a href="#LockingProperty-1649"><span class="linenos">1649</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-1650"><a href="#LockingProperty-1650"><span class="linenos">1650</span></a> <span class="p">}</span>
</span></pre></div>
@@ -18515,8 +18883,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-1622"><a href="#LogProperty-1622"><span class="linenos">1622</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-1623"><a href="#LogProperty-1623"><span class="linenos">1623</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-1653"><a href="#LogProperty-1653"><span class="linenos">1653</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-1654"><a href="#LogProperty-1654"><span class="linenos">1654</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>
@@ -18579,8 +18947,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-1626"><a href="#MaterializedProperty-1626"><span class="linenos">1626</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-1627"><a href="#MaterializedProperty-1627"><span class="linenos">1627</span></a> <span class="n">arg_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-1657"><a href="#MaterializedProperty-1657"><span class="linenos">1657</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-1658"><a href="#MaterializedProperty-1658"><span class="linenos">1658</span></a> <span class="n">arg_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>
@@ -18643,8 +19011,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-1630"><a href="#MergeBlockRatioProperty-1630"><span class="linenos">1630</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-1631"><a href="#MergeBlockRatioProperty-1631"><span class="linenos">1631</span></a> <span class="n">arg_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-1661"><a href="#MergeBlockRatioProperty-1661"><span class="linenos">1661</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-1662"><a href="#MergeBlockRatioProperty-1662"><span class="linenos">1662</span></a> <span class="n">arg_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>
@@ -18707,8 +19075,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-1634"><a href="#NoPrimaryIndexProperty-1634"><span class="linenos">1634</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-1635"><a href="#NoPrimaryIndexProperty-1635"><span class="linenos">1635</span></a> <span class="n">arg_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="NoPrimaryIndexProperty-1665"><a href="#NoPrimaryIndexProperty-1665"><span class="linenos">1665</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-1666"><a href="#NoPrimaryIndexProperty-1666"><span class="linenos">1666</span></a> <span class="n">arg_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>
@@ -18771,8 +19139,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-1638"><a href="#OnCommitProperty-1638"><span class="linenos">1638</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-1639"><a href="#OnCommitProperty-1639"><span class="linenos">1639</span></a> <span class="n">arg_type</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="OnCommitProperty-1669"><a href="#OnCommitProperty-1669"><span class="linenos">1669</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-1670"><a href="#OnCommitProperty-1670"><span class="linenos">1670</span></a> <span class="n">arg_type</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>
@@ -18835,8 +19203,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-1642"><a href="#PartitionedByProperty-1642"><span class="linenos">1642</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-1643"><a href="#PartitionedByProperty-1643"><span class="linenos">1643</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1673"><a href="#PartitionedByProperty-1673"><span class="linenos">1673</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-1674"><a href="#PartitionedByProperty-1674"><span class="linenos">1674</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -18899,8 +19267,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-1646"><a href="#ReturnsProperty-1646"><span class="linenos">1646</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-1647"><a href="#ReturnsProperty-1647"><span class="linenos">1647</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1677"><a href="#ReturnsProperty-1677"><span class="linenos">1677</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-1678"><a href="#ReturnsProperty-1678"><span class="linenos">1678</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -18952,6 +19320,70 @@ Otherwise, this resets the expression.</li>
</dl>
</div>
</section>
+ <section id="RowFormatProperty">
+ <input id="RowFormatProperty-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">RowFormatProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
+
+ <label class="view-source-button" for="RowFormatProperty-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#RowFormatProperty"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatProperty-1681"><a href="#RowFormatProperty-1681"><span class="linenos">1681</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-1682"><a href="#RowFormatProperty-1682"><span class="linenos">1682</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="RowFormatProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="RowFormatProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="RowFormatProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="RowFormatProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="RowFormatProperty.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="RowFormatProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="RowFormatProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="RowFormatProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="RowFormatProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="RowFormatProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="RowFormatProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="RowFormatProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="RowFormatProperty.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="RowFormatProperty.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="RowFormatProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="RowFormatProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="RowFormatProperty.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="RowFormatProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="RowFormatProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="RowFormatProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="RowFormatProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="RowFormatProperty.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="RowFormatProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="RowFormatProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="RowFormatProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="RowFormatProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="RowFormatProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="RowFormatProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="RowFormatProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="RowFormatProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="RowFormatProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="RowFormatProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="RowFormatProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="RowFormatProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="RowFormatProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="RowFormatProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="RowFormatProperty.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="RowFormatDelimitedProperty">
<input id="RowFormatDelimitedProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -18963,17 +19395,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-1650"><a href="#RowFormatDelimitedProperty-1650"><span class="linenos">1650</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-1651"><a href="#RowFormatDelimitedProperty-1651"><span class="linenos">1651</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
-</span><span id="RowFormatDelimitedProperty-1652"><a href="#RowFormatDelimitedProperty-1652"><span class="linenos">1652</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="RowFormatDelimitedProperty-1653"><a href="#RowFormatDelimitedProperty-1653"><span class="linenos">1653</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-1654"><a href="#RowFormatDelimitedProperty-1654"><span class="linenos">1654</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-1655"><a href="#RowFormatDelimitedProperty-1655"><span class="linenos">1655</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-1656"><a href="#RowFormatDelimitedProperty-1656"><span class="linenos">1656</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-1657"><a href="#RowFormatDelimitedProperty-1657"><span class="linenos">1657</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-1658"><a href="#RowFormatDelimitedProperty-1658"><span class="linenos">1658</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-1659"><a href="#RowFormatDelimitedProperty-1659"><span class="linenos">1659</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-1660"><a href="#RowFormatDelimitedProperty-1660"><span class="linenos">1660</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatDelimitedProperty-1685"><a href="#RowFormatDelimitedProperty-1685"><span class="linenos">1685</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-1686"><a href="#RowFormatDelimitedProperty-1686"><span class="linenos">1686</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
+</span><span id="RowFormatDelimitedProperty-1687"><a href="#RowFormatDelimitedProperty-1687"><span class="linenos">1687</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="RowFormatDelimitedProperty-1688"><a href="#RowFormatDelimitedProperty-1688"><span class="linenos">1688</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-1689"><a href="#RowFormatDelimitedProperty-1689"><span class="linenos">1689</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-1690"><a href="#RowFormatDelimitedProperty-1690"><span class="linenos">1690</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-1691"><a href="#RowFormatDelimitedProperty-1691"><span class="linenos">1691</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-1692"><a href="#RowFormatDelimitedProperty-1692"><span class="linenos">1692</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-1693"><a href="#RowFormatDelimitedProperty-1693"><span class="linenos">1693</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-1694"><a href="#RowFormatDelimitedProperty-1694"><span class="linenos">1694</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-1695"><a href="#RowFormatDelimitedProperty-1695"><span class="linenos">1695</span></a> <span class="p">}</span>
</span></pre></div>
@@ -19036,8 +19468,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-1663"><a href="#RowFormatSerdeProperty-1663"><span class="linenos">1663</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-1664"><a href="#RowFormatSerdeProperty-1664"><span class="linenos">1664</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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="RowFormatSerdeProperty-1698"><a href="#RowFormatSerdeProperty-1698"><span class="linenos">1698</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-1699"><a href="#RowFormatSerdeProperty-1699"><span class="linenos">1699</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -19100,8 +19532,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-1667"><a href="#SchemaCommentProperty-1667"><span class="linenos">1667</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-1668"><a href="#SchemaCommentProperty-1668"><span class="linenos">1668</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1702"><a href="#SchemaCommentProperty-1702"><span class="linenos">1702</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-1703"><a href="#SchemaCommentProperty-1703"><span class="linenos">1703</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -19164,8 +19596,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-1671"><a href="#SerdeProperties-1671"><span class="linenos">1671</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-1672"><a href="#SerdeProperties-1672"><span class="linenos">1672</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-1706"><a href="#SerdeProperties-1706"><span class="linenos">1706</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-1707"><a href="#SerdeProperties-1707"><span class="linenos">1707</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>
@@ -19228,8 +19660,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-1675"><a href="#SetProperty-1675"><span class="linenos">1675</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-1676"><a href="#SetProperty-1676"><span class="linenos">1676</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-1710"><a href="#SetProperty-1710"><span class="linenos">1710</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-1711"><a href="#SetProperty-1711"><span class="linenos">1711</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>
@@ -19292,8 +19724,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-1679"><a href="#SortKeyProperty-1679"><span class="linenos">1679</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-1680"><a href="#SortKeyProperty-1680"><span class="linenos">1680</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1714"><a href="#SortKeyProperty-1714"><span class="linenos">1714</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-1715"><a href="#SortKeyProperty-1715"><span class="linenos">1715</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -19356,8 +19788,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-1683"><a href="#SqlSecurityProperty-1683"><span class="linenos">1683</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-1684"><a href="#SqlSecurityProperty-1684"><span class="linenos">1684</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-1718"><a href="#SqlSecurityProperty-1718"><span class="linenos">1718</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-1719"><a href="#SqlSecurityProperty-1719"><span class="linenos">1719</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>
@@ -19409,6 +19841,70 @@ Otherwise, this resets the expression.</li>
</dl>
</div>
</section>
+ <section id="StabilityProperty">
+ <input id="StabilityProperty-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">StabilityProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
+
+ <label class="view-source-button" for="StabilityProperty-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#StabilityProperty"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StabilityProperty-1722"><a href="#StabilityProperty-1722"><span class="linenos">1722</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-1723"><a href="#StabilityProperty-1723"><span class="linenos">1723</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="StabilityProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="StabilityProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="StabilityProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="StabilityProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="StabilityProperty.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="StabilityProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="StabilityProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="StabilityProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="StabilityProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="StabilityProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="StabilityProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="StabilityProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="StabilityProperty.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="StabilityProperty.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="StabilityProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="StabilityProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="StabilityProperty.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="StabilityProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="StabilityProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="StabilityProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="StabilityProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="StabilityProperty.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="StabilityProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="StabilityProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="StabilityProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="StabilityProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="StabilityProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="StabilityProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="StabilityProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="StabilityProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="StabilityProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="StabilityProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="StabilityProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="StabilityProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="StabilityProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="StabilityProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="StabilityProperty.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="TableFormatProperty">
<input id="TableFormatProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -19420,8 +19916,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#TableFormatProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TableFormatProperty-1687"><a href="#TableFormatProperty-1687"><span class="linenos">1687</span></a><span class="k">class</span> <span class="nc">TableFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="TableFormatProperty-1688"><a href="#TableFormatProperty-1688"><span class="linenos">1688</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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="TableFormatProperty-1726"><a href="#TableFormatProperty-1726"><span class="linenos">1726</span></a><span class="k">class</span> <span class="nc">TableFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="TableFormatProperty-1727"><a href="#TableFormatProperty-1727"><span class="linenos">1727</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -19484,8 +19980,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-1691"><a href="#TemporaryProperty-1691"><span class="linenos">1691</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-1692"><a href="#TemporaryProperty-1692"><span class="linenos">1692</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;global_&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="TemporaryProperty-1730"><a href="#TemporaryProperty-1730"><span class="linenos">1730</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-1731"><a href="#TemporaryProperty-1731"><span class="linenos">1731</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;global_&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -19548,8 +20044,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-1695"><a href="#TransientProperty-1695"><span class="linenos">1695</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-1696"><a href="#TransientProperty-1696"><span class="linenos">1696</span></a> <span class="n">arg_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-1734"><a href="#TransientProperty-1734"><span class="linenos">1734</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-1735"><a href="#TransientProperty-1735"><span class="linenos">1735</span></a> <span class="n">arg_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>
@@ -19601,19 +20097,19 @@ Otherwise, this resets the expression.</li>
</dl>
</div>
</section>
- <section id="VolatilityProperty">
- <input id="VolatilityProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+ <section id="VolatileProperty">
+ <input id="VolatileProperty-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">VolatilityProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
+ <span class="name">VolatileProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
- <label class="view-source-button" for="VolatilityProperty-view-source"><span>View Source</span></label>
+ <label class="view-source-button" for="VolatileProperty-view-source"><span>View Source</span></label>
</div>
- <a class="headerlink" href="#VolatilityProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VolatilityProperty-1699"><a href="#VolatilityProperty-1699"><span class="linenos">1699</span></a><span class="k">class</span> <span class="nc">VolatilityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="VolatilityProperty-1700"><a href="#VolatilityProperty-1700"><span class="linenos">1700</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <a class="headerlink" href="#VolatileProperty"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="VolatileProperty-1738"><a href="#VolatileProperty-1738"><span class="linenos">1738</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-1739"><a href="#VolatileProperty-1739"><span class="linenos">1739</span></a> <span class="n">arg_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>
@@ -19623,43 +20119,43 @@ Otherwise, this resets the expression.</li>
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
- <dd id="VolatilityProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
- <dd id="VolatilityProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
- <dd id="VolatilityProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
- <dd id="VolatilityProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
- <dd id="VolatilityProperty.text" class="function"><a href="#Expression.text">text</a></dd>
- <dd id="VolatilityProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
- <dd id="VolatilityProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
- <dd id="VolatilityProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
- <dd id="VolatilityProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
- <dd id="VolatilityProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
- <dd id="VolatilityProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
- <dd id="VolatilityProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
- <dd id="VolatilityProperty.append" class="function"><a href="#Expression.append">append</a></dd>
- <dd id="VolatilityProperty.set" class="function"><a href="#Expression.set">set</a></dd>
- <dd id="VolatilityProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
- <dd id="VolatilityProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
- <dd id="VolatilityProperty.find" class="function"><a href="#Expression.find">find</a></dd>
- <dd id="VolatilityProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
- <dd id="VolatilityProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
- <dd id="VolatilityProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
- <dd id="VolatilityProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
- <dd id="VolatilityProperty.root" class="function"><a href="#Expression.root">root</a></dd>
- <dd id="VolatilityProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
- <dd id="VolatilityProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
- <dd id="VolatilityProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
- <dd id="VolatilityProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
- <dd id="VolatilityProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
- <dd id="VolatilityProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
- <dd id="VolatilityProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
- <dd id="VolatilityProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
- <dd id="VolatilityProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
- <dd id="VolatilityProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
- <dd id="VolatilityProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
- <dd id="VolatilityProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
- <dd id="VolatilityProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
- <dd id="VolatilityProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
- <dd id="VolatilityProperty.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="VolatileProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="VolatileProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="VolatileProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="VolatileProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="VolatileProperty.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="VolatileProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="VolatileProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="VolatileProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="VolatileProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="VolatileProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="VolatileProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="VolatileProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="VolatileProperty.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="VolatileProperty.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="VolatileProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="VolatileProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="VolatileProperty.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="VolatileProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="VolatileProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="VolatileProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="VolatileProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="VolatileProperty.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="VolatileProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="VolatileProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="VolatileProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="VolatileProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="VolatileProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="VolatileProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="VolatileProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="VolatileProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="VolatileProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="VolatileProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="VolatileProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="VolatileProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="VolatileProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="VolatileProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="VolatileProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
@@ -19676,8 +20172,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-1703"><a href="#WithDataProperty-1703"><span class="linenos">1703</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-1704"><a href="#WithDataProperty-1704"><span class="linenos">1704</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-1742"><a href="#WithDataProperty-1742"><span class="linenos">1742</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-1743"><a href="#WithDataProperty-1743"><span class="linenos">1743</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>
@@ -19740,8 +20236,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-1707"><a href="#WithJournalTableProperty-1707"><span class="linenos">1707</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-1708"><a href="#WithJournalTableProperty-1708"><span class="linenos">1708</span></a> <span class="n">arg_types</span> <span class="o">=</span> <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-1746"><a href="#WithJournalTableProperty-1746"><span class="linenos">1746</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-1747"><a href="#WithJournalTableProperty-1747"><span class="linenos">1747</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span 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>
@@ -19804,65 +20300,66 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Properties"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Properties-1711"><a href="#Properties-1711"><span class="linenos">1711</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-1712"><a href="#Properties-1712"><span class="linenos">1712</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-1713"><a href="#Properties-1713"><span class="linenos">1713</span></a>
-</span><span id="Properties-1714"><a href="#Properties-1714"><span class="linenos">1714</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Properties-1715"><a href="#Properties-1715"><span class="linenos">1715</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-1716"><a href="#Properties-1716"><span class="linenos">1716</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-1717"><a href="#Properties-1717"><span class="linenos">1717</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-1718"><a href="#Properties-1718"><span class="linenos">1718</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-1719"><a href="#Properties-1719"><span class="linenos">1719</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-1720"><a href="#Properties-1720"><span class="linenos">1720</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-1721"><a href="#Properties-1721"><span class="linenos">1721</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-1722"><a href="#Properties-1722"><span class="linenos">1722</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-1723"><a href="#Properties-1723"><span class="linenos">1723</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-1724"><a href="#Properties-1724"><span class="linenos">1724</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-1725"><a href="#Properties-1725"><span class="linenos">1725</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-1726"><a href="#Properties-1726"><span class="linenos">1726</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-1727"><a href="#Properties-1727"><span class="linenos">1727</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-1728"><a href="#Properties-1728"><span class="linenos">1728</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-1729"><a href="#Properties-1729"><span class="linenos">1729</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-1730"><a href="#Properties-1730"><span class="linenos">1730</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-1731"><a href="#Properties-1731"><span class="linenos">1731</span></a> <span class="s2">&quot;TABLE_FORMAT&quot;</span><span class="p">:</span> <span class="n">TableFormatProperty</span><span class="p">,</span>
-</span><span id="Properties-1732"><a href="#Properties-1732"><span class="linenos">1732</span></a> <span class="p">}</span>
-</span><span id="Properties-1733"><a href="#Properties-1733"><span class="linenos">1733</span></a>
-</span><span id="Properties-1734"><a href="#Properties-1734"><span class="linenos">1734</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-1735"><a href="#Properties-1735"><span class="linenos">1735</span></a>
-</span><span id="Properties-1736"><a href="#Properties-1736"><span class="linenos">1736</span></a> <span class="c1"># CREATE property locations</span>
-</span><span id="Properties-1737"><a href="#Properties-1737"><span class="linenos">1737</span></a> <span class="c1"># Form: schema specified</span>
-</span><span id="Properties-1738"><a href="#Properties-1738"><span class="linenos">1738</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="Properties-1739"><a href="#Properties-1739"><span class="linenos">1739</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="Properties-1740"><a href="#Properties-1740"><span class="linenos">1740</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
-</span><span id="Properties-1741"><a href="#Properties-1741"><span class="linenos">1741</span></a> <span class="c1"># with ([POST_WITH])</span>
-</span><span id="Properties-1742"><a href="#Properties-1742"><span class="linenos">1742</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
-</span><span id="Properties-1743"><a href="#Properties-1743"><span class="linenos">1743</span></a> <span class="c1">#</span>
-</span><span id="Properties-1744"><a href="#Properties-1744"><span class="linenos">1744</span></a> <span class="c1"># Form: alias selection</span>
-</span><span id="Properties-1745"><a href="#Properties-1745"><span class="linenos">1745</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="Properties-1746"><a href="#Properties-1746"><span class="linenos">1746</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="Properties-1747"><a href="#Properties-1747"><span class="linenos">1747</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
-</span><span id="Properties-1748"><a href="#Properties-1748"><span class="linenos">1748</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
-</span><span id="Properties-1749"><a href="#Properties-1749"><span class="linenos">1749</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-1750"><a href="#Properties-1750"><span class="linenos">1750</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-1751"><a href="#Properties-1751"><span class="linenos">1751</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-1752"><a href="#Properties-1752"><span class="linenos">1752</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-1753"><a href="#Properties-1753"><span class="linenos">1753</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-1754"><a href="#Properties-1754"><span class="linenos">1754</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-1755"><a href="#Properties-1755"><span class="linenos">1755</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-1756"><a href="#Properties-1756"><span class="linenos">1756</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-1757"><a href="#Properties-1757"><span class="linenos">1757</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties-1758"><a href="#Properties-1758"><span class="linenos">1758</span></a>
-</span><span id="Properties-1759"><a href="#Properties-1759"><span class="linenos">1759</span></a> <span class="nd">@classmethod</span>
-</span><span id="Properties-1760"><a href="#Properties-1760"><span class="linenos">1760</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="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
-</span><span id="Properties-1761"><a href="#Properties-1761"><span class="linenos">1761</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Properties-1762"><a href="#Properties-1762"><span class="linenos">1762</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-1763"><a href="#Properties-1763"><span class="linenos">1763</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-1764"><a href="#Properties-1764"><span class="linenos">1764</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
-</span><span id="Properties-1765"><a href="#Properties-1765"><span class="linenos">1765</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-1766"><a href="#Properties-1766"><span class="linenos">1766</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Properties-1767"><a href="#Properties-1767"><span class="linenos">1767</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-1768"><a href="#Properties-1768"><span class="linenos">1768</span></a>
-</span><span id="Properties-1769"><a href="#Properties-1769"><span class="linenos">1769</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-1750"><a href="#Properties-1750"><span class="linenos">1750</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-1751"><a href="#Properties-1751"><span class="linenos">1751</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-1752"><a href="#Properties-1752"><span class="linenos">1752</span></a>
+</span><span id="Properties-1753"><a href="#Properties-1753"><span class="linenos">1753</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Properties-1754"><a href="#Properties-1754"><span class="linenos">1754</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-1755"><a href="#Properties-1755"><span class="linenos">1755</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-1756"><a href="#Properties-1756"><span class="linenos">1756</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-1757"><a href="#Properties-1757"><span class="linenos">1757</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-1758"><a href="#Properties-1758"><span class="linenos">1758</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-1759"><a href="#Properties-1759"><span class="linenos">1759</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-1760"><a href="#Properties-1760"><span class="linenos">1760</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-1761"><a href="#Properties-1761"><span class="linenos">1761</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-1762"><a href="#Properties-1762"><span class="linenos">1762</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-1763"><a href="#Properties-1763"><span class="linenos">1763</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-1764"><a href="#Properties-1764"><span class="linenos">1764</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-1765"><a href="#Properties-1765"><span class="linenos">1765</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-1766"><a href="#Properties-1766"><span class="linenos">1766</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-1767"><a href="#Properties-1767"><span class="linenos">1767</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-1768"><a href="#Properties-1768"><span class="linenos">1768</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-1769"><a href="#Properties-1769"><span class="linenos">1769</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-1770"><a href="#Properties-1770"><span class="linenos">1770</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-1771"><a href="#Properties-1771"><span class="linenos">1771</span></a> <span class="s2">&quot;TABLE_FORMAT&quot;</span><span class="p">:</span> <span class="n">TableFormatProperty</span><span class="p">,</span>
+</span><span id="Properties-1772"><a href="#Properties-1772"><span class="linenos">1772</span></a> <span class="p">}</span>
+</span><span id="Properties-1773"><a href="#Properties-1773"><span class="linenos">1773</span></a>
+</span><span id="Properties-1774"><a href="#Properties-1774"><span class="linenos">1774</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-1775"><a href="#Properties-1775"><span class="linenos">1775</span></a>
+</span><span id="Properties-1776"><a href="#Properties-1776"><span class="linenos">1776</span></a> <span class="c1"># CREATE property locations</span>
+</span><span id="Properties-1777"><a href="#Properties-1777"><span class="linenos">1777</span></a> <span class="c1"># Form: schema specified</span>
+</span><span id="Properties-1778"><a href="#Properties-1778"><span class="linenos">1778</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="Properties-1779"><a href="#Properties-1779"><span class="linenos">1779</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="Properties-1780"><a href="#Properties-1780"><span class="linenos">1780</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
+</span><span id="Properties-1781"><a href="#Properties-1781"><span class="linenos">1781</span></a> <span class="c1"># with ([POST_WITH])</span>
+</span><span id="Properties-1782"><a href="#Properties-1782"><span class="linenos">1782</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
+</span><span id="Properties-1783"><a href="#Properties-1783"><span class="linenos">1783</span></a> <span class="c1">#</span>
+</span><span id="Properties-1784"><a href="#Properties-1784"><span class="linenos">1784</span></a> <span class="c1"># Form: alias selection</span>
+</span><span id="Properties-1785"><a href="#Properties-1785"><span class="linenos">1785</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="Properties-1786"><a href="#Properties-1786"><span class="linenos">1786</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="Properties-1787"><a href="#Properties-1787"><span class="linenos">1787</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
+</span><span id="Properties-1788"><a href="#Properties-1788"><span class="linenos">1788</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
+</span><span id="Properties-1789"><a href="#Properties-1789"><span class="linenos">1789</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-1790"><a href="#Properties-1790"><span class="linenos">1790</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-1791"><a href="#Properties-1791"><span class="linenos">1791</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-1792"><a href="#Properties-1792"><span class="linenos">1792</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-1793"><a href="#Properties-1793"><span class="linenos">1793</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-1794"><a href="#Properties-1794"><span class="linenos">1794</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-1795"><a href="#Properties-1795"><span class="linenos">1795</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-1796"><a href="#Properties-1796"><span class="linenos">1796</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-1797"><a href="#Properties-1797"><span class="linenos">1797</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties-1798"><a href="#Properties-1798"><span class="linenos">1798</span></a>
+</span><span id="Properties-1799"><a href="#Properties-1799"><span class="linenos">1799</span></a> <span class="nd">@classmethod</span>
+</span><span id="Properties-1800"><a href="#Properties-1800"><span class="linenos">1800</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="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
+</span><span id="Properties-1801"><a href="#Properties-1801"><span class="linenos">1801</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Properties-1802"><a href="#Properties-1802"><span class="linenos">1802</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-1803"><a href="#Properties-1803"><span class="linenos">1803</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-1804"><a href="#Properties-1804"><span class="linenos">1804</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
+</span><span id="Properties-1805"><a href="#Properties-1805"><span class="linenos">1805</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-1806"><a href="#Properties-1806"><span class="linenos">1806</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Properties-1807"><a href="#Properties-1807"><span class="linenos">1807</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-1808"><a href="#Properties-1808"><span class="linenos">1808</span></a>
+</span><span id="Properties-1809"><a href="#Properties-1809"><span class="linenos">1809</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>
@@ -19880,17 +20377,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-1759"><a href="#Properties.from_dict-1759"><span class="linenos">1759</span></a> <span class="nd">@classmethod</span>
-</span><span id="Properties.from_dict-1760"><a href="#Properties.from_dict-1760"><span class="linenos">1760</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="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
-</span><span id="Properties.from_dict-1761"><a href="#Properties.from_dict-1761"><span class="linenos">1761</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Properties.from_dict-1762"><a href="#Properties.from_dict-1762"><span class="linenos">1762</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-1763"><a href="#Properties.from_dict-1763"><span class="linenos">1763</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-1764"><a href="#Properties.from_dict-1764"><span class="linenos">1764</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
-</span><span id="Properties.from_dict-1765"><a href="#Properties.from_dict-1765"><span class="linenos">1765</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-1766"><a href="#Properties.from_dict-1766"><span class="linenos">1766</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Properties.from_dict-1767"><a href="#Properties.from_dict-1767"><span class="linenos">1767</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-1768"><a href="#Properties.from_dict-1768"><span class="linenos">1768</span></a>
-</span><span id="Properties.from_dict-1769"><a href="#Properties.from_dict-1769"><span class="linenos">1769</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-1799"><a href="#Properties.from_dict-1799"><span class="linenos">1799</span></a> <span class="nd">@classmethod</span>
+</span><span id="Properties.from_dict-1800"><a href="#Properties.from_dict-1800"><span class="linenos">1800</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="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
+</span><span id="Properties.from_dict-1801"><a href="#Properties.from_dict-1801"><span class="linenos">1801</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Properties.from_dict-1802"><a href="#Properties.from_dict-1802"><span class="linenos">1802</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-1803"><a href="#Properties.from_dict-1803"><span class="linenos">1803</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-1804"><a href="#Properties.from_dict-1804"><span class="linenos">1804</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
+</span><span id="Properties.from_dict-1805"><a href="#Properties.from_dict-1805"><span class="linenos">1805</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-1806"><a href="#Properties.from_dict-1806"><span class="linenos">1806</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Properties.from_dict-1807"><a href="#Properties.from_dict-1807"><span class="linenos">1807</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-1808"><a href="#Properties.from_dict-1808"><span class="linenos">1808</span></a>
+</span><span id="Properties.from_dict-1809"><a href="#Properties.from_dict-1809"><span class="linenos">1809</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>
@@ -19954,15 +20451,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-1749"><a href="#Properties.Location-1749"><span class="linenos">1749</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-1750"><a href="#Properties.Location-1750"><span class="linenos">1750</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-1751"><a href="#Properties.Location-1751"><span class="linenos">1751</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-1752"><a href="#Properties.Location-1752"><span class="linenos">1752</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-1753"><a href="#Properties.Location-1753"><span class="linenos">1753</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-1754"><a href="#Properties.Location-1754"><span class="linenos">1754</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-1755"><a href="#Properties.Location-1755"><span class="linenos">1755</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-1756"><a href="#Properties.Location-1756"><span class="linenos">1756</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-1757"><a href="#Properties.Location-1757"><span class="linenos">1757</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-1789"><a href="#Properties.Location-1789"><span class="linenos">1789</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-1790"><a href="#Properties.Location-1790"><span class="linenos">1790</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-1791"><a href="#Properties.Location-1791"><span class="linenos">1791</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-1792"><a href="#Properties.Location-1792"><span class="linenos">1792</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-1793"><a href="#Properties.Location-1793"><span class="linenos">1793</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-1794"><a href="#Properties.Location-1794"><span class="linenos">1794</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-1795"><a href="#Properties.Location-1795"><span class="linenos">1795</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-1796"><a href="#Properties.Location-1796"><span class="linenos">1796</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-1797"><a href="#Properties.Location-1797"><span class="linenos">1797</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span></pre></div>
@@ -20088,8 +20585,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-1772"><a href="#Qualify-1772"><span class="linenos">1772</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-1773"><a href="#Qualify-1773"><span class="linenos">1773</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Qualify-1812"><a href="#Qualify-1812"><span class="linenos">1812</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-1813"><a href="#Qualify-1813"><span class="linenos">1813</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -20152,8 +20649,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-1777"><a href="#Return-1777"><span class="linenos">1777</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-1778"><a href="#Return-1778"><span class="linenos">1778</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Return-1817"><a href="#Return-1817"><span class="linenos">1817</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-1818"><a href="#Return-1818"><span class="linenos">1818</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -20216,8 +20713,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-1781"><a href="#Reference-1781"><span class="linenos">1781</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-1782"><a href="#Reference-1782"><span class="linenos">1782</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1821"><a href="#Reference-1821"><span class="linenos">1821</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-1822"><a href="#Reference-1822"><span class="linenos">1822</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -20280,8 +20777,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Tuple"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Tuple-1785"><a href="#Tuple-1785"><span class="linenos">1785</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-1786"><a href="#Tuple-1786"><span class="linenos">1786</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Tuple-1825"><a href="#Tuple-1825"><span class="linenos">1825</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-1826"><a href="#Tuple-1826"><span class="linenos">1826</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></pre></div>
@@ -20344,103 +20841,103 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Subqueryable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable-1789"><a href="#Subqueryable-1789"><span class="linenos">1789</span></a><span class="k">class</span> <span class="nc">Subqueryable</span><span class="p">(</span><span class="n">Unionable</span><span class="p">):</span>
-</span><span id="Subqueryable-1790"><a href="#Subqueryable-1790"><span class="linenos">1790</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
-</span><span id="Subqueryable-1791"><a href="#Subqueryable-1791"><span class="linenos">1791</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subqueryable-1792"><a href="#Subqueryable-1792"><span class="linenos">1792</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
-</span><span id="Subqueryable-1793"><a href="#Subqueryable-1793"><span class="linenos">1793</span></a>
-</span><span id="Subqueryable-1794"><a href="#Subqueryable-1794"><span class="linenos">1794</span></a><span class="sd"> Example:</span>
-</span><span id="Subqueryable-1795"><a href="#Subqueryable-1795"><span class="linenos">1795</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
-</span><span id="Subqueryable-1796"><a href="#Subqueryable-1796"><span class="linenos">1796</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
-</span><span id="Subqueryable-1797"><a href="#Subqueryable-1797"><span class="linenos">1797</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
-</span><span id="Subqueryable-1798"><a href="#Subqueryable-1798"><span class="linenos">1798</span></a>
-</span><span id="Subqueryable-1799"><a href="#Subqueryable-1799"><span class="linenos">1799</span></a><span class="sd"> Args:</span>
-</span><span id="Subqueryable-1800"><a href="#Subqueryable-1800"><span class="linenos">1800</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
-</span><span id="Subqueryable-1801"><a href="#Subqueryable-1801"><span class="linenos">1801</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Subqueryable-1802"><a href="#Subqueryable-1802"><span class="linenos">1802</span></a>
-</span><span id="Subqueryable-1803"><a href="#Subqueryable-1803"><span class="linenos">1803</span></a><span class="sd"> Returns:</span>
-</span><span id="Subqueryable-1804"><a href="#Subqueryable-1804"><span class="linenos">1804</span></a><span class="sd"> Alias: the subquery</span>
-</span><span id="Subqueryable-1805"><a href="#Subqueryable-1805"><span class="linenos">1805</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subqueryable-1806"><a href="#Subqueryable-1806"><span class="linenos">1806</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="Subqueryable-1807"><a href="#Subqueryable-1807"><span class="linenos">1807</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span>
-</span><span id="Subqueryable-1808"><a href="#Subqueryable-1808"><span class="linenos">1808</span></a> <span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="Subqueryable-1809"><a href="#Subqueryable-1809"><span class="linenos">1809</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="Subqueryable-1810"><a href="#Subqueryable-1810"><span class="linenos">1810</span></a> <span class="p">)</span>
-</span><span id="Subqueryable-1811"><a href="#Subqueryable-1811"><span class="linenos">1811</span></a>
-</span><span id="Subqueryable-1812"><a href="#Subqueryable-1812"><span class="linenos">1812</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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="Subqueryable-1813"><a href="#Subqueryable-1813"><span class="linenos">1813</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
-</span><span id="Subqueryable-1814"><a href="#Subqueryable-1814"><span class="linenos">1814</span></a>
-</span><span id="Subqueryable-1815"><a href="#Subqueryable-1815"><span class="linenos">1815</span></a> <span class="nd">@property</span>
-</span><span id="Subqueryable-1816"><a href="#Subqueryable-1816"><span class="linenos">1816</span></a> <span class="k">def</span> <span class="nf">ctes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Subqueryable-1817"><a href="#Subqueryable-1817"><span class="linenos">1817</span></a> <span class="n">with_</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;with&quot;</span><span class="p">)</span>
-</span><span id="Subqueryable-1818"><a href="#Subqueryable-1818"><span class="linenos">1818</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">with_</span><span class="p">:</span>
-</span><span id="Subqueryable-1819"><a href="#Subqueryable-1819"><span class="linenos">1819</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="Subqueryable-1820"><a href="#Subqueryable-1820"><span class="linenos">1820</span></a> <span class="k">return</span> <span class="n">with_</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="Subqueryable-1821"><a href="#Subqueryable-1821"><span class="linenos">1821</span></a>
-</span><span id="Subqueryable-1822"><a href="#Subqueryable-1822"><span class="linenos">1822</span></a> <span class="nd">@property</span>
-</span><span id="Subqueryable-1823"><a href="#Subqueryable-1823"><span class="linenos">1823</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><span id="Subqueryable-1824"><a href="#Subqueryable-1824"><span class="linenos">1824</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `selects`&quot;</span><span class="p">)</span>
-</span><span id="Subqueryable-1825"><a href="#Subqueryable-1825"><span class="linenos">1825</span></a>
-</span><span id="Subqueryable-1826"><a href="#Subqueryable-1826"><span class="linenos">1826</span></a> <span class="nd">@property</span>
-</span><span id="Subqueryable-1827"><a href="#Subqueryable-1827"><span class="linenos">1827</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><span id="Subqueryable-1828"><a href="#Subqueryable-1828"><span class="linenos">1828</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `named_selects`&quot;</span><span class="p">)</span>
-</span><span id="Subqueryable-1829"><a href="#Subqueryable-1829"><span class="linenos">1829</span></a>
-</span><span id="Subqueryable-1830"><a href="#Subqueryable-1830"><span class="linenos">1830</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
-</span><span id="Subqueryable-1831"><a href="#Subqueryable-1831"><span class="linenos">1831</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Subqueryable-1832"><a href="#Subqueryable-1832"><span class="linenos">1832</span></a> <span class="n">alias</span><span class="p">,</span>
-</span><span id="Subqueryable-1833"><a href="#Subqueryable-1833"><span class="linenos">1833</span></a> <span class="n">as_</span><span class="p">,</span>
-</span><span id="Subqueryable-1834"><a href="#Subqueryable-1834"><span class="linenos">1834</span></a> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable-1835"><a href="#Subqueryable-1835"><span class="linenos">1835</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Subqueryable-1836"><a href="#Subqueryable-1836"><span class="linenos">1836</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable-1837"><a href="#Subqueryable-1837"><span class="linenos">1837</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Subqueryable-1838"><a href="#Subqueryable-1838"><span class="linenos">1838</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable-1839"><a href="#Subqueryable-1839"><span class="linenos">1839</span></a> <span class="p">):</span>
-</span><span id="Subqueryable-1840"><a href="#Subqueryable-1840"><span class="linenos">1840</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subqueryable-1841"><a href="#Subqueryable-1841"><span class="linenos">1841</span></a><span class="sd"> Append to or set the common table expressions.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable-1829"><a href="#Subqueryable-1829"><span class="linenos">1829</span></a><span class="k">class</span> <span class="nc">Subqueryable</span><span class="p">(</span><span class="n">Unionable</span><span class="p">):</span>
+</span><span id="Subqueryable-1830"><a href="#Subqueryable-1830"><span class="linenos">1830</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
+</span><span id="Subqueryable-1831"><a href="#Subqueryable-1831"><span class="linenos">1831</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subqueryable-1832"><a href="#Subqueryable-1832"><span class="linenos">1832</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
+</span><span id="Subqueryable-1833"><a href="#Subqueryable-1833"><span class="linenos">1833</span></a>
+</span><span id="Subqueryable-1834"><a href="#Subqueryable-1834"><span class="linenos">1834</span></a><span class="sd"> Example:</span>
+</span><span id="Subqueryable-1835"><a href="#Subqueryable-1835"><span class="linenos">1835</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
+</span><span id="Subqueryable-1836"><a href="#Subqueryable-1836"><span class="linenos">1836</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
+</span><span id="Subqueryable-1837"><a href="#Subqueryable-1837"><span class="linenos">1837</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
+</span><span id="Subqueryable-1838"><a href="#Subqueryable-1838"><span class="linenos">1838</span></a>
+</span><span id="Subqueryable-1839"><a href="#Subqueryable-1839"><span class="linenos">1839</span></a><span class="sd"> Args:</span>
+</span><span id="Subqueryable-1840"><a href="#Subqueryable-1840"><span class="linenos">1840</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
+</span><span id="Subqueryable-1841"><a href="#Subqueryable-1841"><span class="linenos">1841</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
</span><span id="Subqueryable-1842"><a href="#Subqueryable-1842"><span class="linenos">1842</span></a>
-</span><span id="Subqueryable-1843"><a href="#Subqueryable-1843"><span class="linenos">1843</span></a><span class="sd"> Example:</span>
-</span><span id="Subqueryable-1844"><a href="#Subqueryable-1844"><span class="linenos">1844</span></a><span class="sd"> &gt;&gt;&gt; Select().with_(&quot;tbl2&quot;, as_=&quot;SELECT * FROM tbl&quot;).select(&quot;x&quot;).from_(&quot;tbl2&quot;).sql()</span>
-</span><span id="Subqueryable-1845"><a href="#Subqueryable-1845"><span class="linenos">1845</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
-</span><span id="Subqueryable-1846"><a href="#Subqueryable-1846"><span class="linenos">1846</span></a>
-</span><span id="Subqueryable-1847"><a href="#Subqueryable-1847"><span class="linenos">1847</span></a><span class="sd"> Args:</span>
-</span><span id="Subqueryable-1848"><a href="#Subqueryable-1848"><span class="linenos">1848</span></a><span class="sd"> alias (str | Expression): the SQL code string to parse as the table name.</span>
-</span><span id="Subqueryable-1849"><a href="#Subqueryable-1849"><span class="linenos">1849</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
-</span><span id="Subqueryable-1850"><a href="#Subqueryable-1850"><span class="linenos">1850</span></a><span class="sd"> as_ (str | Expression): the SQL code string to parse as the table expression.</span>
-</span><span id="Subqueryable-1851"><a href="#Subqueryable-1851"><span class="linenos">1851</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Subqueryable-1852"><a href="#Subqueryable-1852"><span class="linenos">1852</span></a><span class="sd"> recursive (bool): set the RECURSIVE part of the expression. Defaults to `False`.</span>
-</span><span id="Subqueryable-1853"><a href="#Subqueryable-1853"><span class="linenos">1853</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Subqueryable-1854"><a href="#Subqueryable-1854"><span class="linenos">1854</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Subqueryable-1855"><a href="#Subqueryable-1855"><span class="linenos">1855</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Subqueryable-1856"><a href="#Subqueryable-1856"><span class="linenos">1856</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Subqueryable-1857"><a href="#Subqueryable-1857"><span class="linenos">1857</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Subqueryable-1858"><a href="#Subqueryable-1858"><span class="linenos">1858</span></a>
-</span><span id="Subqueryable-1859"><a href="#Subqueryable-1859"><span class="linenos">1859</span></a><span class="sd"> Returns:</span>
-</span><span id="Subqueryable-1860"><a href="#Subqueryable-1860"><span class="linenos">1860</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Subqueryable-1861"><a href="#Subqueryable-1861"><span class="linenos">1861</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subqueryable-1862"><a href="#Subqueryable-1862"><span class="linenos">1862</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="Subqueryable-1863"><a href="#Subqueryable-1863"><span class="linenos">1863</span></a> <span class="n">alias</span><span class="p">,</span>
-</span><span id="Subqueryable-1864"><a href="#Subqueryable-1864"><span class="linenos">1864</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Subqueryable-1865"><a href="#Subqueryable-1865"><span class="linenos">1865</span></a> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span>
-</span><span id="Subqueryable-1866"><a href="#Subqueryable-1866"><span class="linenos">1866</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable-1867"><a href="#Subqueryable-1867"><span class="linenos">1867</span></a> <span class="p">)</span>
-</span><span id="Subqueryable-1868"><a href="#Subqueryable-1868"><span class="linenos">1868</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="Subqueryable-1869"><a href="#Subqueryable-1869"><span class="linenos">1869</span></a> <span class="n">as_</span><span class="p">,</span>
-</span><span id="Subqueryable-1870"><a href="#Subqueryable-1870"><span class="linenos">1870</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Subqueryable-1871"><a href="#Subqueryable-1871"><span class="linenos">1871</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable-1872"><a href="#Subqueryable-1872"><span class="linenos">1872</span></a> <span class="p">)</span>
-</span><span id="Subqueryable-1873"><a href="#Subqueryable-1873"><span class="linenos">1873</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span>
-</span><span id="Subqueryable-1874"><a href="#Subqueryable-1874"><span class="linenos">1874</span></a> <span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span>
-</span><span id="Subqueryable-1875"><a href="#Subqueryable-1875"><span class="linenos">1875</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">,</span>
-</span><span id="Subqueryable-1876"><a href="#Subqueryable-1876"><span class="linenos">1876</span></a> <span class="p">)</span>
-</span><span id="Subqueryable-1877"><a href="#Subqueryable-1877"><span class="linenos">1877</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Subqueryable-1878"><a href="#Subqueryable-1878"><span class="linenos">1878</span></a> <span class="n">cte</span><span class="p">,</span>
-</span><span id="Subqueryable-1879"><a href="#Subqueryable-1879"><span class="linenos">1879</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Subqueryable-1880"><a href="#Subqueryable-1880"><span class="linenos">1880</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="Subqueryable-1881"><a href="#Subqueryable-1881"><span class="linenos">1881</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Subqueryable-1882"><a href="#Subqueryable-1882"><span class="linenos">1882</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Subqueryable-1883"><a href="#Subqueryable-1883"><span class="linenos">1883</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
-</span><span id="Subqueryable-1884"><a href="#Subqueryable-1884"><span class="linenos">1884</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="Subqueryable-1885"><a href="#Subqueryable-1885"><span class="linenos">1885</span></a> <span class="p">)</span>
+</span><span id="Subqueryable-1843"><a href="#Subqueryable-1843"><span class="linenos">1843</span></a><span class="sd"> Returns:</span>
+</span><span id="Subqueryable-1844"><a href="#Subqueryable-1844"><span class="linenos">1844</span></a><span class="sd"> Alias: the subquery</span>
+</span><span id="Subqueryable-1845"><a href="#Subqueryable-1845"><span class="linenos">1845</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subqueryable-1846"><a href="#Subqueryable-1846"><span class="linenos">1846</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="Subqueryable-1847"><a href="#Subqueryable-1847"><span class="linenos">1847</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span>
+</span><span id="Subqueryable-1848"><a href="#Subqueryable-1848"><span class="linenos">1848</span></a> <span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="Subqueryable-1849"><a href="#Subqueryable-1849"><span class="linenos">1849</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="Subqueryable-1850"><a href="#Subqueryable-1850"><span class="linenos">1850</span></a> <span class="p">)</span>
+</span><span id="Subqueryable-1851"><a href="#Subqueryable-1851"><span class="linenos">1851</span></a>
+</span><span id="Subqueryable-1852"><a href="#Subqueryable-1852"><span class="linenos">1852</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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="Subqueryable-1853"><a href="#Subqueryable-1853"><span class="linenos">1853</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
+</span><span id="Subqueryable-1854"><a href="#Subqueryable-1854"><span class="linenos">1854</span></a>
+</span><span id="Subqueryable-1855"><a href="#Subqueryable-1855"><span class="linenos">1855</span></a> <span class="nd">@property</span>
+</span><span id="Subqueryable-1856"><a href="#Subqueryable-1856"><span class="linenos">1856</span></a> <span class="k">def</span> <span class="nf">ctes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Subqueryable-1857"><a href="#Subqueryable-1857"><span class="linenos">1857</span></a> <span class="n">with_</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;with&quot;</span><span class="p">)</span>
+</span><span id="Subqueryable-1858"><a href="#Subqueryable-1858"><span class="linenos">1858</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">with_</span><span class="p">:</span>
+</span><span id="Subqueryable-1859"><a href="#Subqueryable-1859"><span class="linenos">1859</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="Subqueryable-1860"><a href="#Subqueryable-1860"><span class="linenos">1860</span></a> <span class="k">return</span> <span class="n">with_</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="Subqueryable-1861"><a href="#Subqueryable-1861"><span class="linenos">1861</span></a>
+</span><span id="Subqueryable-1862"><a href="#Subqueryable-1862"><span class="linenos">1862</span></a> <span class="nd">@property</span>
+</span><span id="Subqueryable-1863"><a href="#Subqueryable-1863"><span class="linenos">1863</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><span id="Subqueryable-1864"><a href="#Subqueryable-1864"><span class="linenos">1864</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `selects`&quot;</span><span class="p">)</span>
+</span><span id="Subqueryable-1865"><a href="#Subqueryable-1865"><span class="linenos">1865</span></a>
+</span><span id="Subqueryable-1866"><a href="#Subqueryable-1866"><span class="linenos">1866</span></a> <span class="nd">@property</span>
+</span><span id="Subqueryable-1867"><a href="#Subqueryable-1867"><span class="linenos">1867</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><span id="Subqueryable-1868"><a href="#Subqueryable-1868"><span class="linenos">1868</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `named_selects`&quot;</span><span class="p">)</span>
+</span><span id="Subqueryable-1869"><a href="#Subqueryable-1869"><span class="linenos">1869</span></a>
+</span><span id="Subqueryable-1870"><a href="#Subqueryable-1870"><span class="linenos">1870</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="Subqueryable-1871"><a href="#Subqueryable-1871"><span class="linenos">1871</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Subqueryable-1872"><a href="#Subqueryable-1872"><span class="linenos">1872</span></a> <span class="n">alias</span><span class="p">,</span>
+</span><span id="Subqueryable-1873"><a href="#Subqueryable-1873"><span class="linenos">1873</span></a> <span class="n">as_</span><span class="p">,</span>
+</span><span id="Subqueryable-1874"><a href="#Subqueryable-1874"><span class="linenos">1874</span></a> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="Subqueryable-1875"><a href="#Subqueryable-1875"><span class="linenos">1875</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="Subqueryable-1876"><a href="#Subqueryable-1876"><span class="linenos">1876</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="Subqueryable-1877"><a href="#Subqueryable-1877"><span class="linenos">1877</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="Subqueryable-1878"><a href="#Subqueryable-1878"><span class="linenos">1878</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Subqueryable-1879"><a href="#Subqueryable-1879"><span class="linenos">1879</span></a> <span class="p">):</span>
+</span><span id="Subqueryable-1880"><a href="#Subqueryable-1880"><span class="linenos">1880</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subqueryable-1881"><a href="#Subqueryable-1881"><span class="linenos">1881</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="Subqueryable-1882"><a href="#Subqueryable-1882"><span class="linenos">1882</span></a>
+</span><span id="Subqueryable-1883"><a href="#Subqueryable-1883"><span class="linenos">1883</span></a><span class="sd"> Example:</span>
+</span><span id="Subqueryable-1884"><a href="#Subqueryable-1884"><span class="linenos">1884</span></a><span class="sd"> &gt;&gt;&gt; Select().with_(&quot;tbl2&quot;, as_=&quot;SELECT * FROM tbl&quot;).select(&quot;x&quot;).from_(&quot;tbl2&quot;).sql()</span>
+</span><span id="Subqueryable-1885"><a href="#Subqueryable-1885"><span class="linenos">1885</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
+</span><span id="Subqueryable-1886"><a href="#Subqueryable-1886"><span class="linenos">1886</span></a>
+</span><span id="Subqueryable-1887"><a href="#Subqueryable-1887"><span class="linenos">1887</span></a><span class="sd"> Args:</span>
+</span><span id="Subqueryable-1888"><a href="#Subqueryable-1888"><span class="linenos">1888</span></a><span class="sd"> alias (str | Expression): the SQL code string to parse as the table name.</span>
+</span><span id="Subqueryable-1889"><a href="#Subqueryable-1889"><span class="linenos">1889</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="Subqueryable-1890"><a href="#Subqueryable-1890"><span class="linenos">1890</span></a><span class="sd"> as_ (str | Expression): the SQL code string to parse as the table expression.</span>
+</span><span id="Subqueryable-1891"><a href="#Subqueryable-1891"><span class="linenos">1891</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Subqueryable-1892"><a href="#Subqueryable-1892"><span class="linenos">1892</span></a><span class="sd"> recursive (bool): set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="Subqueryable-1893"><a href="#Subqueryable-1893"><span class="linenos">1893</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Subqueryable-1894"><a href="#Subqueryable-1894"><span class="linenos">1894</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Subqueryable-1895"><a href="#Subqueryable-1895"><span class="linenos">1895</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Subqueryable-1896"><a href="#Subqueryable-1896"><span class="linenos">1896</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Subqueryable-1897"><a href="#Subqueryable-1897"><span class="linenos">1897</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Subqueryable-1898"><a href="#Subqueryable-1898"><span class="linenos">1898</span></a>
+</span><span id="Subqueryable-1899"><a href="#Subqueryable-1899"><span class="linenos">1899</span></a><span class="sd"> Returns:</span>
+</span><span id="Subqueryable-1900"><a href="#Subqueryable-1900"><span class="linenos">1900</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Subqueryable-1901"><a href="#Subqueryable-1901"><span class="linenos">1901</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subqueryable-1902"><a href="#Subqueryable-1902"><span class="linenos">1902</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="Subqueryable-1903"><a href="#Subqueryable-1903"><span class="linenos">1903</span></a> <span class="n">alias</span><span class="p">,</span>
+</span><span id="Subqueryable-1904"><a href="#Subqueryable-1904"><span class="linenos">1904</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Subqueryable-1905"><a href="#Subqueryable-1905"><span class="linenos">1905</span></a> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span>
+</span><span id="Subqueryable-1906"><a href="#Subqueryable-1906"><span class="linenos">1906</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Subqueryable-1907"><a href="#Subqueryable-1907"><span class="linenos">1907</span></a> <span class="p">)</span>
+</span><span id="Subqueryable-1908"><a href="#Subqueryable-1908"><span class="linenos">1908</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="Subqueryable-1909"><a href="#Subqueryable-1909"><span class="linenos">1909</span></a> <span class="n">as_</span><span class="p">,</span>
+</span><span id="Subqueryable-1910"><a href="#Subqueryable-1910"><span class="linenos">1910</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Subqueryable-1911"><a href="#Subqueryable-1911"><span class="linenos">1911</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Subqueryable-1912"><a href="#Subqueryable-1912"><span class="linenos">1912</span></a> <span class="p">)</span>
+</span><span id="Subqueryable-1913"><a href="#Subqueryable-1913"><span class="linenos">1913</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span>
+</span><span id="Subqueryable-1914"><a href="#Subqueryable-1914"><span class="linenos">1914</span></a> <span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span>
+</span><span id="Subqueryable-1915"><a href="#Subqueryable-1915"><span class="linenos">1915</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">,</span>
+</span><span id="Subqueryable-1916"><a href="#Subqueryable-1916"><span class="linenos">1916</span></a> <span class="p">)</span>
+</span><span id="Subqueryable-1917"><a href="#Subqueryable-1917"><span class="linenos">1917</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Subqueryable-1918"><a href="#Subqueryable-1918"><span class="linenos">1918</span></a> <span class="n">cte</span><span class="p">,</span>
+</span><span id="Subqueryable-1919"><a href="#Subqueryable-1919"><span class="linenos">1919</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Subqueryable-1920"><a href="#Subqueryable-1920"><span class="linenos">1920</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="Subqueryable-1921"><a href="#Subqueryable-1921"><span class="linenos">1921</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Subqueryable-1922"><a href="#Subqueryable-1922"><span class="linenos">1922</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Subqueryable-1923"><a href="#Subqueryable-1923"><span class="linenos">1923</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
+</span><span id="Subqueryable-1924"><a href="#Subqueryable-1924"><span class="linenos">1924</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="Subqueryable-1925"><a href="#Subqueryable-1925"><span class="linenos">1925</span></a> <span class="p">)</span>
</span></pre></div>
@@ -20457,27 +20954,27 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Subqueryable.subquery"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.subquery-1790"><a href="#Subqueryable.subquery-1790"><span class="linenos">1790</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
-</span><span id="Subqueryable.subquery-1791"><a href="#Subqueryable.subquery-1791"><span class="linenos">1791</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subqueryable.subquery-1792"><a href="#Subqueryable.subquery-1792"><span class="linenos">1792</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
-</span><span id="Subqueryable.subquery-1793"><a href="#Subqueryable.subquery-1793"><span class="linenos">1793</span></a>
-</span><span id="Subqueryable.subquery-1794"><a href="#Subqueryable.subquery-1794"><span class="linenos">1794</span></a><span class="sd"> Example:</span>
-</span><span id="Subqueryable.subquery-1795"><a href="#Subqueryable.subquery-1795"><span class="linenos">1795</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
-</span><span id="Subqueryable.subquery-1796"><a href="#Subqueryable.subquery-1796"><span class="linenos">1796</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
-</span><span id="Subqueryable.subquery-1797"><a href="#Subqueryable.subquery-1797"><span class="linenos">1797</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
-</span><span id="Subqueryable.subquery-1798"><a href="#Subqueryable.subquery-1798"><span class="linenos">1798</span></a>
-</span><span id="Subqueryable.subquery-1799"><a href="#Subqueryable.subquery-1799"><span class="linenos">1799</span></a><span class="sd"> Args:</span>
-</span><span id="Subqueryable.subquery-1800"><a href="#Subqueryable.subquery-1800"><span class="linenos">1800</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
-</span><span id="Subqueryable.subquery-1801"><a href="#Subqueryable.subquery-1801"><span class="linenos">1801</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Subqueryable.subquery-1802"><a href="#Subqueryable.subquery-1802"><span class="linenos">1802</span></a>
-</span><span id="Subqueryable.subquery-1803"><a href="#Subqueryable.subquery-1803"><span class="linenos">1803</span></a><span class="sd"> Returns:</span>
-</span><span id="Subqueryable.subquery-1804"><a href="#Subqueryable.subquery-1804"><span class="linenos">1804</span></a><span class="sd"> Alias: the subquery</span>
-</span><span id="Subqueryable.subquery-1805"><a href="#Subqueryable.subquery-1805"><span class="linenos">1805</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subqueryable.subquery-1806"><a href="#Subqueryable.subquery-1806"><span class="linenos">1806</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="Subqueryable.subquery-1807"><a href="#Subqueryable.subquery-1807"><span class="linenos">1807</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span>
-</span><span id="Subqueryable.subquery-1808"><a href="#Subqueryable.subquery-1808"><span class="linenos">1808</span></a> <span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="Subqueryable.subquery-1809"><a href="#Subqueryable.subquery-1809"><span class="linenos">1809</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="Subqueryable.subquery-1810"><a href="#Subqueryable.subquery-1810"><span class="linenos">1810</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.subquery-1830"><a href="#Subqueryable.subquery-1830"><span class="linenos">1830</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
+</span><span id="Subqueryable.subquery-1831"><a href="#Subqueryable.subquery-1831"><span class="linenos">1831</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subqueryable.subquery-1832"><a href="#Subqueryable.subquery-1832"><span class="linenos">1832</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
+</span><span id="Subqueryable.subquery-1833"><a href="#Subqueryable.subquery-1833"><span class="linenos">1833</span></a>
+</span><span id="Subqueryable.subquery-1834"><a href="#Subqueryable.subquery-1834"><span class="linenos">1834</span></a><span class="sd"> Example:</span>
+</span><span id="Subqueryable.subquery-1835"><a href="#Subqueryable.subquery-1835"><span class="linenos">1835</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
+</span><span id="Subqueryable.subquery-1836"><a href="#Subqueryable.subquery-1836"><span class="linenos">1836</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
+</span><span id="Subqueryable.subquery-1837"><a href="#Subqueryable.subquery-1837"><span class="linenos">1837</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
+</span><span id="Subqueryable.subquery-1838"><a href="#Subqueryable.subquery-1838"><span class="linenos">1838</span></a>
+</span><span id="Subqueryable.subquery-1839"><a href="#Subqueryable.subquery-1839"><span class="linenos">1839</span></a><span class="sd"> Args:</span>
+</span><span id="Subqueryable.subquery-1840"><a href="#Subqueryable.subquery-1840"><span class="linenos">1840</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
+</span><span id="Subqueryable.subquery-1841"><a href="#Subqueryable.subquery-1841"><span class="linenos">1841</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Subqueryable.subquery-1842"><a href="#Subqueryable.subquery-1842"><span class="linenos">1842</span></a>
+</span><span id="Subqueryable.subquery-1843"><a href="#Subqueryable.subquery-1843"><span class="linenos">1843</span></a><span class="sd"> Returns:</span>
+</span><span id="Subqueryable.subquery-1844"><a href="#Subqueryable.subquery-1844"><span class="linenos">1844</span></a><span class="sd"> Alias: the subquery</span>
+</span><span id="Subqueryable.subquery-1845"><a href="#Subqueryable.subquery-1845"><span class="linenos">1845</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subqueryable.subquery-1846"><a href="#Subqueryable.subquery-1846"><span class="linenos">1846</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="Subqueryable.subquery-1847"><a href="#Subqueryable.subquery-1847"><span class="linenos">1847</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span>
+</span><span id="Subqueryable.subquery-1848"><a href="#Subqueryable.subquery-1848"><span class="linenos">1848</span></a> <span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="Subqueryable.subquery-1849"><a href="#Subqueryable.subquery-1849"><span class="linenos">1849</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="Subqueryable.subquery-1850"><a href="#Subqueryable.subquery-1850"><span class="linenos">1850</span></a> <span class="p">)</span>
</span></pre></div>
@@ -20521,8 +21018,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Subqueryable.limit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.limit-1812"><a href="#Subqueryable.limit-1812"><span class="linenos">1812</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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="Subqueryable.limit-1813"><a href="#Subqueryable.limit-1813"><span class="linenos">1813</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.limit-1852"><a href="#Subqueryable.limit-1852"><span class="linenos">1852</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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="Subqueryable.limit-1853"><a href="#Subqueryable.limit-1853"><span class="linenos">1853</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
</span></pre></div>
@@ -20540,62 +21037,62 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Subqueryable.with_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.with_-1830"><a href="#Subqueryable.with_-1830"><span class="linenos">1830</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
-</span><span id="Subqueryable.with_-1831"><a href="#Subqueryable.with_-1831"><span class="linenos">1831</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1832"><a href="#Subqueryable.with_-1832"><span class="linenos">1832</span></a> <span class="n">alias</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1833"><a href="#Subqueryable.with_-1833"><span class="linenos">1833</span></a> <span class="n">as_</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1834"><a href="#Subqueryable.with_-1834"><span class="linenos">1834</span></a> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1835"><a href="#Subqueryable.with_-1835"><span class="linenos">1835</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1836"><a href="#Subqueryable.with_-1836"><span class="linenos">1836</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1837"><a href="#Subqueryable.with_-1837"><span class="linenos">1837</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1838"><a href="#Subqueryable.with_-1838"><span class="linenos">1838</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1839"><a href="#Subqueryable.with_-1839"><span class="linenos">1839</span></a> <span class="p">):</span>
-</span><span id="Subqueryable.with_-1840"><a href="#Subqueryable.with_-1840"><span class="linenos">1840</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subqueryable.with_-1841"><a href="#Subqueryable.with_-1841"><span class="linenos">1841</span></a><span class="sd"> Append to or set the common table expressions.</span>
-</span><span id="Subqueryable.with_-1842"><a href="#Subqueryable.with_-1842"><span class="linenos">1842</span></a>
-</span><span id="Subqueryable.with_-1843"><a href="#Subqueryable.with_-1843"><span class="linenos">1843</span></a><span class="sd"> Example:</span>
-</span><span id="Subqueryable.with_-1844"><a href="#Subqueryable.with_-1844"><span class="linenos">1844</span></a><span class="sd"> &gt;&gt;&gt; Select().with_(&quot;tbl2&quot;, as_=&quot;SELECT * FROM tbl&quot;).select(&quot;x&quot;).from_(&quot;tbl2&quot;).sql()</span>
-</span><span id="Subqueryable.with_-1845"><a href="#Subqueryable.with_-1845"><span class="linenos">1845</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
-</span><span id="Subqueryable.with_-1846"><a href="#Subqueryable.with_-1846"><span class="linenos">1846</span></a>
-</span><span id="Subqueryable.with_-1847"><a href="#Subqueryable.with_-1847"><span class="linenos">1847</span></a><span class="sd"> Args:</span>
-</span><span id="Subqueryable.with_-1848"><a href="#Subqueryable.with_-1848"><span class="linenos">1848</span></a><span class="sd"> alias (str | Expression): the SQL code string to parse as the table name.</span>
-</span><span id="Subqueryable.with_-1849"><a href="#Subqueryable.with_-1849"><span class="linenos">1849</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
-</span><span id="Subqueryable.with_-1850"><a href="#Subqueryable.with_-1850"><span class="linenos">1850</span></a><span class="sd"> as_ (str | Expression): the SQL code string to parse as the table expression.</span>
-</span><span id="Subqueryable.with_-1851"><a href="#Subqueryable.with_-1851"><span class="linenos">1851</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Subqueryable.with_-1852"><a href="#Subqueryable.with_-1852"><span class="linenos">1852</span></a><span class="sd"> recursive (bool): set the RECURSIVE part of the expression. Defaults to `False`.</span>
-</span><span id="Subqueryable.with_-1853"><a href="#Subqueryable.with_-1853"><span class="linenos">1853</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Subqueryable.with_-1854"><a href="#Subqueryable.with_-1854"><span class="linenos">1854</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Subqueryable.with_-1855"><a href="#Subqueryable.with_-1855"><span class="linenos">1855</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Subqueryable.with_-1856"><a href="#Subqueryable.with_-1856"><span class="linenos">1856</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Subqueryable.with_-1857"><a href="#Subqueryable.with_-1857"><span class="linenos">1857</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Subqueryable.with_-1858"><a href="#Subqueryable.with_-1858"><span class="linenos">1858</span></a>
-</span><span id="Subqueryable.with_-1859"><a href="#Subqueryable.with_-1859"><span class="linenos">1859</span></a><span class="sd"> Returns:</span>
-</span><span id="Subqueryable.with_-1860"><a href="#Subqueryable.with_-1860"><span class="linenos">1860</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Subqueryable.with_-1861"><a href="#Subqueryable.with_-1861"><span class="linenos">1861</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subqueryable.with_-1862"><a href="#Subqueryable.with_-1862"><span class="linenos">1862</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="Subqueryable.with_-1863"><a href="#Subqueryable.with_-1863"><span class="linenos">1863</span></a> <span class="n">alias</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1864"><a href="#Subqueryable.with_-1864"><span class="linenos">1864</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1865"><a href="#Subqueryable.with_-1865"><span class="linenos">1865</span></a> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1866"><a href="#Subqueryable.with_-1866"><span class="linenos">1866</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1867"><a href="#Subqueryable.with_-1867"><span class="linenos">1867</span></a> <span class="p">)</span>
-</span><span id="Subqueryable.with_-1868"><a href="#Subqueryable.with_-1868"><span class="linenos">1868</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="Subqueryable.with_-1869"><a href="#Subqueryable.with_-1869"><span class="linenos">1869</span></a> <span class="n">as_</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1870"><a href="#Subqueryable.with_-1870"><span class="linenos">1870</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1871"><a href="#Subqueryable.with_-1871"><span class="linenos">1871</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1872"><a href="#Subqueryable.with_-1872"><span class="linenos">1872</span></a> <span class="p">)</span>
-</span><span id="Subqueryable.with_-1873"><a href="#Subqueryable.with_-1873"><span class="linenos">1873</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span>
-</span><span id="Subqueryable.with_-1874"><a href="#Subqueryable.with_-1874"><span class="linenos">1874</span></a> <span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1875"><a href="#Subqueryable.with_-1875"><span class="linenos">1875</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1876"><a href="#Subqueryable.with_-1876"><span class="linenos">1876</span></a> <span class="p">)</span>
-</span><span id="Subqueryable.with_-1877"><a href="#Subqueryable.with_-1877"><span class="linenos">1877</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Subqueryable.with_-1878"><a href="#Subqueryable.with_-1878"><span class="linenos">1878</span></a> <span class="n">cte</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1879"><a href="#Subqueryable.with_-1879"><span class="linenos">1879</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1880"><a href="#Subqueryable.with_-1880"><span class="linenos">1880</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="Subqueryable.with_-1881"><a href="#Subqueryable.with_-1881"><span class="linenos">1881</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1882"><a href="#Subqueryable.with_-1882"><span class="linenos">1882</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1883"><a href="#Subqueryable.with_-1883"><span class="linenos">1883</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
-</span><span id="Subqueryable.with_-1884"><a href="#Subqueryable.with_-1884"><span class="linenos">1884</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="Subqueryable.with_-1885"><a href="#Subqueryable.with_-1885"><span class="linenos">1885</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.with_-1870"><a href="#Subqueryable.with_-1870"><span class="linenos">1870</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="Subqueryable.with_-1871"><a href="#Subqueryable.with_-1871"><span class="linenos">1871</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1872"><a href="#Subqueryable.with_-1872"><span class="linenos">1872</span></a> <span class="n">alias</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1873"><a href="#Subqueryable.with_-1873"><span class="linenos">1873</span></a> <span class="n">as_</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1874"><a href="#Subqueryable.with_-1874"><span class="linenos">1874</span></a> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1875"><a href="#Subqueryable.with_-1875"><span class="linenos">1875</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1876"><a href="#Subqueryable.with_-1876"><span class="linenos">1876</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1877"><a href="#Subqueryable.with_-1877"><span class="linenos">1877</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1878"><a href="#Subqueryable.with_-1878"><span class="linenos">1878</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1879"><a href="#Subqueryable.with_-1879"><span class="linenos">1879</span></a> <span class="p">):</span>
+</span><span id="Subqueryable.with_-1880"><a href="#Subqueryable.with_-1880"><span class="linenos">1880</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subqueryable.with_-1881"><a href="#Subqueryable.with_-1881"><span class="linenos">1881</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="Subqueryable.with_-1882"><a href="#Subqueryable.with_-1882"><span class="linenos">1882</span></a>
+</span><span id="Subqueryable.with_-1883"><a href="#Subqueryable.with_-1883"><span class="linenos">1883</span></a><span class="sd"> Example:</span>
+</span><span id="Subqueryable.with_-1884"><a href="#Subqueryable.with_-1884"><span class="linenos">1884</span></a><span class="sd"> &gt;&gt;&gt; Select().with_(&quot;tbl2&quot;, as_=&quot;SELECT * FROM tbl&quot;).select(&quot;x&quot;).from_(&quot;tbl2&quot;).sql()</span>
+</span><span id="Subqueryable.with_-1885"><a href="#Subqueryable.with_-1885"><span class="linenos">1885</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
+</span><span id="Subqueryable.with_-1886"><a href="#Subqueryable.with_-1886"><span class="linenos">1886</span></a>
+</span><span id="Subqueryable.with_-1887"><a href="#Subqueryable.with_-1887"><span class="linenos">1887</span></a><span class="sd"> Args:</span>
+</span><span id="Subqueryable.with_-1888"><a href="#Subqueryable.with_-1888"><span class="linenos">1888</span></a><span class="sd"> alias (str | Expression): the SQL code string to parse as the table name.</span>
+</span><span id="Subqueryable.with_-1889"><a href="#Subqueryable.with_-1889"><span class="linenos">1889</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="Subqueryable.with_-1890"><a href="#Subqueryable.with_-1890"><span class="linenos">1890</span></a><span class="sd"> as_ (str | Expression): the SQL code string to parse as the table expression.</span>
+</span><span id="Subqueryable.with_-1891"><a href="#Subqueryable.with_-1891"><span class="linenos">1891</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Subqueryable.with_-1892"><a href="#Subqueryable.with_-1892"><span class="linenos">1892</span></a><span class="sd"> recursive (bool): set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="Subqueryable.with_-1893"><a href="#Subqueryable.with_-1893"><span class="linenos">1893</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Subqueryable.with_-1894"><a href="#Subqueryable.with_-1894"><span class="linenos">1894</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Subqueryable.with_-1895"><a href="#Subqueryable.with_-1895"><span class="linenos">1895</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Subqueryable.with_-1896"><a href="#Subqueryable.with_-1896"><span class="linenos">1896</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Subqueryable.with_-1897"><a href="#Subqueryable.with_-1897"><span class="linenos">1897</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Subqueryable.with_-1898"><a href="#Subqueryable.with_-1898"><span class="linenos">1898</span></a>
+</span><span id="Subqueryable.with_-1899"><a href="#Subqueryable.with_-1899"><span class="linenos">1899</span></a><span class="sd"> Returns:</span>
+</span><span id="Subqueryable.with_-1900"><a href="#Subqueryable.with_-1900"><span class="linenos">1900</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Subqueryable.with_-1901"><a href="#Subqueryable.with_-1901"><span class="linenos">1901</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subqueryable.with_-1902"><a href="#Subqueryable.with_-1902"><span class="linenos">1902</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="Subqueryable.with_-1903"><a href="#Subqueryable.with_-1903"><span class="linenos">1903</span></a> <span class="n">alias</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1904"><a href="#Subqueryable.with_-1904"><span class="linenos">1904</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1905"><a href="#Subqueryable.with_-1905"><span class="linenos">1905</span></a> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1906"><a href="#Subqueryable.with_-1906"><span class="linenos">1906</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1907"><a href="#Subqueryable.with_-1907"><span class="linenos">1907</span></a> <span class="p">)</span>
+</span><span id="Subqueryable.with_-1908"><a href="#Subqueryable.with_-1908"><span class="linenos">1908</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="Subqueryable.with_-1909"><a href="#Subqueryable.with_-1909"><span class="linenos">1909</span></a> <span class="n">as_</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1910"><a href="#Subqueryable.with_-1910"><span class="linenos">1910</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1911"><a href="#Subqueryable.with_-1911"><span class="linenos">1911</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1912"><a href="#Subqueryable.with_-1912"><span class="linenos">1912</span></a> <span class="p">)</span>
+</span><span id="Subqueryable.with_-1913"><a href="#Subqueryable.with_-1913"><span class="linenos">1913</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span>
+</span><span id="Subqueryable.with_-1914"><a href="#Subqueryable.with_-1914"><span class="linenos">1914</span></a> <span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1915"><a href="#Subqueryable.with_-1915"><span class="linenos">1915</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1916"><a href="#Subqueryable.with_-1916"><span class="linenos">1916</span></a> <span class="p">)</span>
+</span><span id="Subqueryable.with_-1917"><a href="#Subqueryable.with_-1917"><span class="linenos">1917</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Subqueryable.with_-1918"><a href="#Subqueryable.with_-1918"><span class="linenos">1918</span></a> <span class="n">cte</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1919"><a href="#Subqueryable.with_-1919"><span class="linenos">1919</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1920"><a href="#Subqueryable.with_-1920"><span class="linenos">1920</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="Subqueryable.with_-1921"><a href="#Subqueryable.with_-1921"><span class="linenos">1921</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1922"><a href="#Subqueryable.with_-1922"><span class="linenos">1922</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1923"><a href="#Subqueryable.with_-1923"><span class="linenos">1923</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
+</span><span id="Subqueryable.with_-1924"><a href="#Subqueryable.with_-1924"><span class="linenos">1924</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="Subqueryable.with_-1925"><a href="#Subqueryable.with_-1925"><span class="linenos">1925</span></a> <span class="p">)</span>
</span></pre></div>
@@ -20698,26 +21195,26 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Table"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Table-1909"><a href="#Table-1909"><span class="linenos">1909</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-1910"><a href="#Table-1910"><span class="linenos">1910</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Table-1911"><a href="#Table-1911"><span class="linenos">1911</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="Table-1912"><a href="#Table-1912"><span class="linenos">1912</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-1913"><a href="#Table-1913"><span class="linenos">1913</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-1914"><a href="#Table-1914"><span class="linenos">1914</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-1915"><a href="#Table-1915"><span class="linenos">1915</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-1916"><a href="#Table-1916"><span class="linenos">1916</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-1917"><a href="#Table-1917"><span class="linenos">1917</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-1918"><a href="#Table-1918"><span class="linenos">1918</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-1919"><a href="#Table-1919"><span class="linenos">1919</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-1920"><a href="#Table-1920"><span class="linenos">1920</span></a> <span class="p">}</span>
-</span><span id="Table-1921"><a href="#Table-1921"><span class="linenos">1921</span></a>
-</span><span id="Table-1922"><a href="#Table-1922"><span class="linenos">1922</span></a> <span class="nd">@property</span>
-</span><span id="Table-1923"><a href="#Table-1923"><span class="linenos">1923</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-1924"><a href="#Table-1924"><span class="linenos">1924</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-1925"><a href="#Table-1925"><span class="linenos">1925</span></a>
-</span><span id="Table-1926"><a href="#Table-1926"><span class="linenos">1926</span></a> <span class="nd">@property</span>
-</span><span id="Table-1927"><a href="#Table-1927"><span class="linenos">1927</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-1928"><a href="#Table-1928"><span class="linenos">1928</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-1949"><a href="#Table-1949"><span class="linenos">1949</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-1950"><a href="#Table-1950"><span class="linenos">1950</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Table-1951"><a href="#Table-1951"><span class="linenos">1951</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="Table-1952"><a href="#Table-1952"><span class="linenos">1952</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-1953"><a href="#Table-1953"><span class="linenos">1953</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-1954"><a href="#Table-1954"><span class="linenos">1954</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-1955"><a href="#Table-1955"><span class="linenos">1955</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-1956"><a href="#Table-1956"><span class="linenos">1956</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-1957"><a href="#Table-1957"><span class="linenos">1957</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-1958"><a href="#Table-1958"><span class="linenos">1958</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-1959"><a href="#Table-1959"><span class="linenos">1959</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-1960"><a href="#Table-1960"><span class="linenos">1960</span></a> <span class="p">}</span>
+</span><span id="Table-1961"><a href="#Table-1961"><span class="linenos">1961</span></a>
+</span><span id="Table-1962"><a href="#Table-1962"><span class="linenos">1962</span></a> <span class="nd">@property</span>
+</span><span id="Table-1963"><a href="#Table-1963"><span class="linenos">1963</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-1964"><a href="#Table-1964"><span class="linenos">1964</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-1965"><a href="#Table-1965"><span class="linenos">1965</span></a>
+</span><span id="Table-1966"><a href="#Table-1966"><span class="linenos">1966</span></a> <span class="nd">@property</span>
+</span><span id="Table-1967"><a href="#Table-1967"><span class="linenos">1967</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-1968"><a href="#Table-1968"><span class="linenos">1968</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>
@@ -20780,12 +21277,12 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#SystemTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SystemTime-1932"><a href="#SystemTime-1932"><span class="linenos">1932</span></a><span class="k">class</span> <span class="nc">SystemTime</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="SystemTime-1933"><a href="#SystemTime-1933"><span class="linenos">1933</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="SystemTime-1934"><a href="#SystemTime-1934"><span class="linenos">1934</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="SystemTime-1935"><a href="#SystemTime-1935"><span class="linenos">1935</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="SystemTime-1936"><a href="#SystemTime-1936"><span class="linenos">1936</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="SystemTime-1937"><a href="#SystemTime-1937"><span class="linenos">1937</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SystemTime-1972"><a href="#SystemTime-1972"><span class="linenos">1972</span></a><span class="k">class</span> <span class="nc">SystemTime</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="SystemTime-1973"><a href="#SystemTime-1973"><span class="linenos">1973</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="SystemTime-1974"><a href="#SystemTime-1974"><span class="linenos">1974</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="SystemTime-1975"><a href="#SystemTime-1975"><span class="linenos">1975</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="SystemTime-1976"><a href="#SystemTime-1976"><span class="linenos">1976</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="SystemTime-1977"><a href="#SystemTime-1977"><span class="linenos">1977</span></a> <span class="p">}</span>
</span></pre></div>
@@ -20848,94 +21345,94 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Union"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Union-1940"><a href="#Union-1940"><span class="linenos">1940</span></a><span class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span>
-</span><span id="Union-1941"><a href="#Union-1941"><span class="linenos">1941</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Union-1942"><a href="#Union-1942"><span class="linenos">1942</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-1943"><a href="#Union-1943"><span class="linenos">1943</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-1944"><a href="#Union-1944"><span class="linenos">1944</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-1945"><a href="#Union-1945"><span class="linenos">1945</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-1946"><a href="#Union-1946"><span class="linenos">1946</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="Union-1947"><a href="#Union-1947"><span class="linenos">1947</span></a> <span class="p">}</span>
-</span><span id="Union-1948"><a href="#Union-1948"><span class="linenos">1948</span></a>
-</span><span id="Union-1949"><a href="#Union-1949"><span class="linenos">1949</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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="Union-1950"><a href="#Union-1950"><span class="linenos">1950</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Union-1951"><a href="#Union-1951"><span class="linenos">1951</span></a><span class="sd"> Set the LIMIT expression.</span>
-</span><span id="Union-1952"><a href="#Union-1952"><span class="linenos">1952</span></a>
-</span><span id="Union-1953"><a href="#Union-1953"><span class="linenos">1953</span></a><span class="sd"> Example:</span>
-</span><span id="Union-1954"><a href="#Union-1954"><span class="linenos">1954</span></a><span class="sd"> &gt;&gt;&gt; select(&quot;1&quot;).union(select(&quot;1&quot;)).limit(1).sql()</span>
-</span><span id="Union-1955"><a href="#Union-1955"><span class="linenos">1955</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
-</span><span id="Union-1956"><a href="#Union-1956"><span class="linenos">1956</span></a>
-</span><span id="Union-1957"><a href="#Union-1957"><span class="linenos">1957</span></a><span class="sd"> Args:</span>
-</span><span id="Union-1958"><a href="#Union-1958"><span class="linenos">1958</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="Union-1959"><a href="#Union-1959"><span class="linenos">1959</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Union-1960"><a href="#Union-1960"><span class="linenos">1960</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="Union-1961"><a href="#Union-1961"><span class="linenos">1961</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="Union-1962"><a href="#Union-1962"><span class="linenos">1962</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Union-1963"><a href="#Union-1963"><span class="linenos">1963</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Union-1964"><a href="#Union-1964"><span class="linenos">1964</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Union-1965"><a href="#Union-1965"><span class="linenos">1965</span></a>
-</span><span id="Union-1966"><a href="#Union-1966"><span class="linenos">1966</span></a><span class="sd"> Returns:</span>
-</span><span id="Union-1967"><a href="#Union-1967"><span class="linenos">1967</span></a><span class="sd"> Select: The limited subqueryable.</span>
-</span><span id="Union-1968"><a href="#Union-1968"><span class="linenos">1968</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Union-1969"><a href="#Union-1969"><span class="linenos">1969</span></a> <span class="k">return</span> <span class="p">(</span>
-</span><span id="Union-1970"><a href="#Union-1970"><span class="linenos">1970</span></a> <span class="n">select</span><span class="p">(</span><span class="s2">&quot;*&quot;</span><span class="p">)</span>
-</span><span id="Union-1971"><a href="#Union-1971"><span class="linenos">1971</span></a> <span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">&quot;_l_0&quot;</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="Union-1972"><a href="#Union-1972"><span class="linenos">1972</span></a> <span class="o">.</span><span class="n">limit</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="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Union-1973"><a href="#Union-1973"><span class="linenos">1973</span></a> <span class="p">)</span>
-</span><span id="Union-1974"><a href="#Union-1974"><span class="linenos">1974</span></a>
-</span><span id="Union-1975"><a href="#Union-1975"><span class="linenos">1975</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Union-1976"><a href="#Union-1976"><span class="linenos">1976</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Union-1977"><a href="#Union-1977"><span class="linenos">1977</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><span id="Union-1978"><a href="#Union-1978"><span class="linenos">1978</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-1979"><a href="#Union-1979"><span class="linenos">1979</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-1980"><a href="#Union-1980"><span class="linenos">1980</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-1981"><a href="#Union-1981"><span class="linenos">1981</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Union-1982"><a href="#Union-1982"><span class="linenos">1982</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="Union-1983"><a href="#Union-1983"><span class="linenos">1983</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Append to or set the SELECT of the union recursively.</span>
-</span><span id="Union-1984"><a href="#Union-1984"><span class="linenos">1984</span></a>
-</span><span id="Union-1985"><a href="#Union-1985"><span class="linenos">1985</span></a><span class="sd"> Example:</span>
-</span><span id="Union-1986"><a href="#Union-1986"><span class="linenos">1986</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="Union-1987"><a href="#Union-1987"><span class="linenos">1987</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;select a from x union select a from y union select a from z&quot;).select(&quot;b&quot;).sql()</span>
-</span><span id="Union-1988"><a href="#Union-1988"><span class="linenos">1988</span></a><span class="sd"> &#39;SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z&#39;</span>
-</span><span id="Union-1989"><a href="#Union-1989"><span class="linenos">1989</span></a>
-</span><span id="Union-1990"><a href="#Union-1990"><span class="linenos">1990</span></a><span class="sd"> Args:</span>
-</span><span id="Union-1991"><a href="#Union-1991"><span class="linenos">1991</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Union-1992"><a href="#Union-1992"><span class="linenos">1992</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Union-1993"><a href="#Union-1993"><span class="linenos">1993</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Union-1994"><a href="#Union-1994"><span class="linenos">1994</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Union-1995"><a href="#Union-1995"><span class="linenos">1995</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Union-1996"><a href="#Union-1996"><span class="linenos">1996</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Union-1997"><a href="#Union-1997"><span class="linenos">1997</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Union-1998"><a href="#Union-1998"><span class="linenos">1998</span></a>
-</span><span id="Union-1999"><a href="#Union-1999"><span class="linenos">1999</span></a><span class="sd"> Returns:</span>
-</span><span id="Union-2000"><a href="#Union-2000"><span class="linenos">2000</span></a><span class="sd"> Union: the modified expression.</span>
-</span><span id="Union-2001"><a href="#Union-2001"><span class="linenos">2001</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Union-2002"><a href="#Union-2002"><span class="linenos">2002</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
-</span><span id="Union-2003"><a href="#Union-2003"><span class="linenos">2003</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-2004"><a href="#Union-2004"><span class="linenos">2004</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-2005"><a href="#Union-2005"><span class="linenos">2005</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-2006"><a href="#Union-2006"><span class="linenos">2006</span></a> <span class="p">)</span>
-</span><span id="Union-2007"><a href="#Union-2007"><span class="linenos">2007</span></a> <span class="k">return</span> <span class="n">this</span>
-</span><span id="Union-2008"><a href="#Union-2008"><span class="linenos">2008</span></a>
-</span><span id="Union-2009"><a href="#Union-2009"><span class="linenos">2009</span></a> <span class="nd">@property</span>
-</span><span id="Union-2010"><a href="#Union-2010"><span class="linenos">2010</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><span id="Union-2011"><a href="#Union-2011"><span class="linenos">2011</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-2012"><a href="#Union-2012"><span class="linenos">2012</span></a>
-</span><span id="Union-2013"><a href="#Union-2013"><span class="linenos">2013</span></a> <span class="nd">@property</span>
-</span><span id="Union-2014"><a href="#Union-2014"><span class="linenos">2014</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-2015"><a href="#Union-2015"><span class="linenos">2015</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-2016"><a href="#Union-2016"><span class="linenos">2016</span></a>
-</span><span id="Union-2017"><a href="#Union-2017"><span class="linenos">2017</span></a> <span class="nd">@property</span>
-</span><span id="Union-2018"><a href="#Union-2018"><span class="linenos">2018</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><span id="Union-2019"><a href="#Union-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">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
-</span><span id="Union-2020"><a href="#Union-2020"><span class="linenos">2020</span></a>
-</span><span id="Union-2021"><a href="#Union-2021"><span class="linenos">2021</span></a> <span class="nd">@property</span>
-</span><span id="Union-2022"><a href="#Union-2022"><span class="linenos">2022</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Union-2023"><a href="#Union-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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union-1980"><a href="#Union-1980"><span class="linenos">1980</span></a><span class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span>
+</span><span id="Union-1981"><a href="#Union-1981"><span class="linenos">1981</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Union-1982"><a href="#Union-1982"><span class="linenos">1982</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-1983"><a href="#Union-1983"><span class="linenos">1983</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-1984"><a href="#Union-1984"><span class="linenos">1984</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-1985"><a href="#Union-1985"><span class="linenos">1985</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-1986"><a href="#Union-1986"><span class="linenos">1986</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="Union-1987"><a href="#Union-1987"><span class="linenos">1987</span></a> <span class="p">}</span>
+</span><span id="Union-1988"><a href="#Union-1988"><span class="linenos">1988</span></a>
+</span><span id="Union-1989"><a href="#Union-1989"><span class="linenos">1989</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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="Union-1990"><a href="#Union-1990"><span class="linenos">1990</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Union-1991"><a href="#Union-1991"><span class="linenos">1991</span></a><span class="sd"> Set the LIMIT expression.</span>
+</span><span id="Union-1992"><a href="#Union-1992"><span class="linenos">1992</span></a>
+</span><span id="Union-1993"><a href="#Union-1993"><span class="linenos">1993</span></a><span class="sd"> Example:</span>
+</span><span id="Union-1994"><a href="#Union-1994"><span class="linenos">1994</span></a><span class="sd"> &gt;&gt;&gt; select(&quot;1&quot;).union(select(&quot;1&quot;)).limit(1).sql()</span>
+</span><span id="Union-1995"><a href="#Union-1995"><span class="linenos">1995</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
+</span><span id="Union-1996"><a href="#Union-1996"><span class="linenos">1996</span></a>
+</span><span id="Union-1997"><a href="#Union-1997"><span class="linenos">1997</span></a><span class="sd"> Args:</span>
+</span><span id="Union-1998"><a href="#Union-1998"><span class="linenos">1998</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
+</span><span id="Union-1999"><a href="#Union-1999"><span class="linenos">1999</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Union-2000"><a href="#Union-2000"><span class="linenos">2000</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="Union-2001"><a href="#Union-2001"><span class="linenos">2001</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="Union-2002"><a href="#Union-2002"><span class="linenos">2002</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Union-2003"><a href="#Union-2003"><span class="linenos">2003</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Union-2004"><a href="#Union-2004"><span class="linenos">2004</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Union-2005"><a href="#Union-2005"><span class="linenos">2005</span></a>
+</span><span id="Union-2006"><a href="#Union-2006"><span class="linenos">2006</span></a><span class="sd"> Returns:</span>
+</span><span id="Union-2007"><a href="#Union-2007"><span class="linenos">2007</span></a><span class="sd"> Select: The limited subqueryable.</span>
+</span><span id="Union-2008"><a href="#Union-2008"><span class="linenos">2008</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Union-2009"><a href="#Union-2009"><span class="linenos">2009</span></a> <span class="k">return</span> <span class="p">(</span>
+</span><span id="Union-2010"><a href="#Union-2010"><span class="linenos">2010</span></a> <span class="n">select</span><span class="p">(</span><span class="s2">&quot;*&quot;</span><span class="p">)</span>
+</span><span id="Union-2011"><a href="#Union-2011"><span class="linenos">2011</span></a> <span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">&quot;_l_0&quot;</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="Union-2012"><a href="#Union-2012"><span class="linenos">2012</span></a> <span class="o">.</span><span class="n">limit</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="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Union-2013"><a href="#Union-2013"><span class="linenos">2013</span></a> <span class="p">)</span>
+</span><span id="Union-2014"><a href="#Union-2014"><span class="linenos">2014</span></a>
+</span><span id="Union-2015"><a href="#Union-2015"><span class="linenos">2015</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Union-2016"><a href="#Union-2016"><span class="linenos">2016</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Union-2017"><a href="#Union-2017"><span class="linenos">2017</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><span id="Union-2018"><a href="#Union-2018"><span class="linenos">2018</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-2019"><a href="#Union-2019"><span class="linenos">2019</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-2020"><a href="#Union-2020"><span class="linenos">2020</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-2021"><a href="#Union-2021"><span class="linenos">2021</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Union-2022"><a href="#Union-2022"><span class="linenos">2022</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="Union-2023"><a href="#Union-2023"><span class="linenos">2023</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Append to or set the SELECT of the union recursively.</span>
</span><span id="Union-2024"><a href="#Union-2024"><span class="linenos">2024</span></a>
-</span><span id="Union-2025"><a href="#Union-2025"><span class="linenos">2025</span></a> <span class="nd">@property</span>
-</span><span id="Union-2026"><a href="#Union-2026"><span class="linenos">2026</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Union-2027"><a href="#Union-2027"><span class="linenos">2027</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
+</span><span id="Union-2025"><a href="#Union-2025"><span class="linenos">2025</span></a><span class="sd"> Example:</span>
+</span><span id="Union-2026"><a href="#Union-2026"><span class="linenos">2026</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="Union-2027"><a href="#Union-2027"><span class="linenos">2027</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;select a from x union select a from y union select a from z&quot;).select(&quot;b&quot;).sql()</span>
+</span><span id="Union-2028"><a href="#Union-2028"><span class="linenos">2028</span></a><span class="sd"> &#39;SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z&#39;</span>
+</span><span id="Union-2029"><a href="#Union-2029"><span class="linenos">2029</span></a>
+</span><span id="Union-2030"><a href="#Union-2030"><span class="linenos">2030</span></a><span class="sd"> Args:</span>
+</span><span id="Union-2031"><a href="#Union-2031"><span class="linenos">2031</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Union-2032"><a href="#Union-2032"><span class="linenos">2032</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Union-2033"><a href="#Union-2033"><span class="linenos">2033</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Union-2034"><a href="#Union-2034"><span class="linenos">2034</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Union-2035"><a href="#Union-2035"><span class="linenos">2035</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Union-2036"><a href="#Union-2036"><span class="linenos">2036</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Union-2037"><a href="#Union-2037"><span class="linenos">2037</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Union-2038"><a href="#Union-2038"><span class="linenos">2038</span></a>
+</span><span id="Union-2039"><a href="#Union-2039"><span class="linenos">2039</span></a><span class="sd"> Returns:</span>
+</span><span id="Union-2040"><a href="#Union-2040"><span class="linenos">2040</span></a><span class="sd"> Union: the modified expression.</span>
+</span><span id="Union-2041"><a href="#Union-2041"><span class="linenos">2041</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Union-2042"><a href="#Union-2042"><span class="linenos">2042</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
+</span><span id="Union-2043"><a href="#Union-2043"><span class="linenos">2043</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-2044"><a href="#Union-2044"><span class="linenos">2044</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-2045"><a href="#Union-2045"><span class="linenos">2045</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-2046"><a href="#Union-2046"><span class="linenos">2046</span></a> <span class="p">)</span>
+</span><span id="Union-2047"><a href="#Union-2047"><span class="linenos">2047</span></a> <span class="k">return</span> <span class="n">this</span>
+</span><span id="Union-2048"><a href="#Union-2048"><span class="linenos">2048</span></a>
+</span><span id="Union-2049"><a href="#Union-2049"><span class="linenos">2049</span></a> <span class="nd">@property</span>
+</span><span id="Union-2050"><a href="#Union-2050"><span class="linenos">2050</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><span id="Union-2051"><a href="#Union-2051"><span class="linenos">2051</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-2052"><a href="#Union-2052"><span class="linenos">2052</span></a>
+</span><span id="Union-2053"><a href="#Union-2053"><span class="linenos">2053</span></a> <span class="nd">@property</span>
+</span><span id="Union-2054"><a href="#Union-2054"><span class="linenos">2054</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-2055"><a href="#Union-2055"><span class="linenos">2055</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-2056"><a href="#Union-2056"><span class="linenos">2056</span></a>
+</span><span id="Union-2057"><a href="#Union-2057"><span class="linenos">2057</span></a> <span class="nd">@property</span>
+</span><span id="Union-2058"><a href="#Union-2058"><span class="linenos">2058</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><span id="Union-2059"><a href="#Union-2059"><span class="linenos">2059</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-2060"><a href="#Union-2060"><span class="linenos">2060</span></a>
+</span><span id="Union-2061"><a href="#Union-2061"><span class="linenos">2061</span></a> <span class="nd">@property</span>
+</span><span id="Union-2062"><a href="#Union-2062"><span class="linenos">2062</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Union-2063"><a href="#Union-2063"><span class="linenos">2063</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-2064"><a href="#Union-2064"><span class="linenos">2064</span></a>
+</span><span id="Union-2065"><a href="#Union-2065"><span class="linenos">2065</span></a> <span class="nd">@property</span>
+</span><span id="Union-2066"><a href="#Union-2066"><span class="linenos">2066</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Union-2067"><a href="#Union-2067"><span class="linenos">2067</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span></pre></div>
@@ -20952,31 +21449,31 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Union.limit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Union.limit-1949"><a href="#Union.limit-1949"><span class="linenos">1949</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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="Union.limit-1950"><a href="#Union.limit-1950"><span class="linenos">1950</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Union.limit-1951"><a href="#Union.limit-1951"><span class="linenos">1951</span></a><span class="sd"> Set the LIMIT expression.</span>
-</span><span id="Union.limit-1952"><a href="#Union.limit-1952"><span class="linenos">1952</span></a>
-</span><span id="Union.limit-1953"><a href="#Union.limit-1953"><span class="linenos">1953</span></a><span class="sd"> Example:</span>
-</span><span id="Union.limit-1954"><a href="#Union.limit-1954"><span class="linenos">1954</span></a><span class="sd"> &gt;&gt;&gt; select(&quot;1&quot;).union(select(&quot;1&quot;)).limit(1).sql()</span>
-</span><span id="Union.limit-1955"><a href="#Union.limit-1955"><span class="linenos">1955</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
-</span><span id="Union.limit-1956"><a href="#Union.limit-1956"><span class="linenos">1956</span></a>
-</span><span id="Union.limit-1957"><a href="#Union.limit-1957"><span class="linenos">1957</span></a><span class="sd"> Args:</span>
-</span><span id="Union.limit-1958"><a href="#Union.limit-1958"><span class="linenos">1958</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="Union.limit-1959"><a href="#Union.limit-1959"><span class="linenos">1959</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Union.limit-1960"><a href="#Union.limit-1960"><span class="linenos">1960</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="Union.limit-1961"><a href="#Union.limit-1961"><span class="linenos">1961</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="Union.limit-1962"><a href="#Union.limit-1962"><span class="linenos">1962</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Union.limit-1963"><a href="#Union.limit-1963"><span class="linenos">1963</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Union.limit-1964"><a href="#Union.limit-1964"><span class="linenos">1964</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Union.limit-1965"><a href="#Union.limit-1965"><span class="linenos">1965</span></a>
-</span><span id="Union.limit-1966"><a href="#Union.limit-1966"><span class="linenos">1966</span></a><span class="sd"> Returns:</span>
-</span><span id="Union.limit-1967"><a href="#Union.limit-1967"><span class="linenos">1967</span></a><span class="sd"> Select: The limited subqueryable.</span>
-</span><span id="Union.limit-1968"><a href="#Union.limit-1968"><span class="linenos">1968</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Union.limit-1969"><a href="#Union.limit-1969"><span class="linenos">1969</span></a> <span class="k">return</span> <span class="p">(</span>
-</span><span id="Union.limit-1970"><a href="#Union.limit-1970"><span class="linenos">1970</span></a> <span class="n">select</span><span class="p">(</span><span class="s2">&quot;*&quot;</span><span class="p">)</span>
-</span><span id="Union.limit-1971"><a href="#Union.limit-1971"><span class="linenos">1971</span></a> <span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">&quot;_l_0&quot;</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="Union.limit-1972"><a href="#Union.limit-1972"><span class="linenos">1972</span></a> <span class="o">.</span><span class="n">limit</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="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Union.limit-1973"><a href="#Union.limit-1973"><span class="linenos">1973</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.limit-1989"><a href="#Union.limit-1989"><span class="linenos">1989</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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="Union.limit-1990"><a href="#Union.limit-1990"><span class="linenos">1990</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Union.limit-1991"><a href="#Union.limit-1991"><span class="linenos">1991</span></a><span class="sd"> Set the LIMIT expression.</span>
+</span><span id="Union.limit-1992"><a href="#Union.limit-1992"><span class="linenos">1992</span></a>
+</span><span id="Union.limit-1993"><a href="#Union.limit-1993"><span class="linenos">1993</span></a><span class="sd"> Example:</span>
+</span><span id="Union.limit-1994"><a href="#Union.limit-1994"><span class="linenos">1994</span></a><span class="sd"> &gt;&gt;&gt; select(&quot;1&quot;).union(select(&quot;1&quot;)).limit(1).sql()</span>
+</span><span id="Union.limit-1995"><a href="#Union.limit-1995"><span class="linenos">1995</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
+</span><span id="Union.limit-1996"><a href="#Union.limit-1996"><span class="linenos">1996</span></a>
+</span><span id="Union.limit-1997"><a href="#Union.limit-1997"><span class="linenos">1997</span></a><span class="sd"> Args:</span>
+</span><span id="Union.limit-1998"><a href="#Union.limit-1998"><span class="linenos">1998</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
+</span><span id="Union.limit-1999"><a href="#Union.limit-1999"><span class="linenos">1999</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Union.limit-2000"><a href="#Union.limit-2000"><span class="linenos">2000</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="Union.limit-2001"><a href="#Union.limit-2001"><span class="linenos">2001</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="Union.limit-2002"><a href="#Union.limit-2002"><span class="linenos">2002</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Union.limit-2003"><a href="#Union.limit-2003"><span class="linenos">2003</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Union.limit-2004"><a href="#Union.limit-2004"><span class="linenos">2004</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Union.limit-2005"><a href="#Union.limit-2005"><span class="linenos">2005</span></a>
+</span><span id="Union.limit-2006"><a href="#Union.limit-2006"><span class="linenos">2006</span></a><span class="sd"> Returns:</span>
+</span><span id="Union.limit-2007"><a href="#Union.limit-2007"><span class="linenos">2007</span></a><span class="sd"> Select: The limited subqueryable.</span>
+</span><span id="Union.limit-2008"><a href="#Union.limit-2008"><span class="linenos">2008</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Union.limit-2009"><a href="#Union.limit-2009"><span class="linenos">2009</span></a> <span class="k">return</span> <span class="p">(</span>
+</span><span id="Union.limit-2010"><a href="#Union.limit-2010"><span class="linenos">2010</span></a> <span class="n">select</span><span class="p">(</span><span class="s2">&quot;*&quot;</span><span class="p">)</span>
+</span><span id="Union.limit-2011"><a href="#Union.limit-2011"><span class="linenos">2011</span></a> <span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">&quot;_l_0&quot;</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="Union.limit-2012"><a href="#Union.limit-2012"><span class="linenos">2012</span></a> <span class="o">.</span><span class="n">limit</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="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Union.limit-2013"><a href="#Union.limit-2013"><span class="linenos">2013</span></a> <span class="p">)</span>
</span></pre></div>
@@ -21024,39 +21521,39 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Union.select"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Union.select-1975"><a href="#Union.select-1975"><span class="linenos">1975</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Union.select-1976"><a href="#Union.select-1976"><span class="linenos">1976</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Union.select-1977"><a href="#Union.select-1977"><span class="linenos">1977</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><span id="Union.select-1978"><a href="#Union.select-1978"><span class="linenos">1978</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-1979"><a href="#Union.select-1979"><span class="linenos">1979</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-1980"><a href="#Union.select-1980"><span class="linenos">1980</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-1981"><a href="#Union.select-1981"><span class="linenos">1981</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Union.select-1982"><a href="#Union.select-1982"><span class="linenos">1982</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-1983"><a href="#Union.select-1983"><span class="linenos">1983</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Append to or set the SELECT of the union recursively.</span>
-</span><span id="Union.select-1984"><a href="#Union.select-1984"><span class="linenos">1984</span></a>
-</span><span id="Union.select-1985"><a href="#Union.select-1985"><span class="linenos">1985</span></a><span class="sd"> Example:</span>
-</span><span id="Union.select-1986"><a href="#Union.select-1986"><span class="linenos">1986</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="Union.select-1987"><a href="#Union.select-1987"><span class="linenos">1987</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;select a from x union select a from y union select a from z&quot;).select(&quot;b&quot;).sql()</span>
-</span><span id="Union.select-1988"><a href="#Union.select-1988"><span class="linenos">1988</span></a><span class="sd"> &#39;SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z&#39;</span>
-</span><span id="Union.select-1989"><a href="#Union.select-1989"><span class="linenos">1989</span></a>
-</span><span id="Union.select-1990"><a href="#Union.select-1990"><span class="linenos">1990</span></a><span class="sd"> Args:</span>
-</span><span id="Union.select-1991"><a href="#Union.select-1991"><span class="linenos">1991</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Union.select-1992"><a href="#Union.select-1992"><span class="linenos">1992</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Union.select-1993"><a href="#Union.select-1993"><span class="linenos">1993</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Union.select-1994"><a href="#Union.select-1994"><span class="linenos">1994</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Union.select-1995"><a href="#Union.select-1995"><span class="linenos">1995</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Union.select-1996"><a href="#Union.select-1996"><span class="linenos">1996</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Union.select-1997"><a href="#Union.select-1997"><span class="linenos">1997</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Union.select-1998"><a href="#Union.select-1998"><span class="linenos">1998</span></a>
-</span><span id="Union.select-1999"><a href="#Union.select-1999"><span class="linenos">1999</span></a><span class="sd"> Returns:</span>
-</span><span id="Union.select-2000"><a href="#Union.select-2000"><span class="linenos">2000</span></a><span class="sd"> Union: the modified expression.</span>
-</span><span id="Union.select-2001"><a href="#Union.select-2001"><span class="linenos">2001</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Union.select-2002"><a href="#Union.select-2002"><span class="linenos">2002</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
-</span><span id="Union.select-2003"><a href="#Union.select-2003"><span class="linenos">2003</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-2004"><a href="#Union.select-2004"><span class="linenos">2004</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-2005"><a href="#Union.select-2005"><span class="linenos">2005</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-2006"><a href="#Union.select-2006"><span class="linenos">2006</span></a> <span class="p">)</span>
-</span><span id="Union.select-2007"><a href="#Union.select-2007"><span class="linenos">2007</span></a> <span class="k">return</span> <span class="n">this</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.select-2015"><a href="#Union.select-2015"><span class="linenos">2015</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Union.select-2016"><a href="#Union.select-2016"><span class="linenos">2016</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Union.select-2017"><a href="#Union.select-2017"><span class="linenos">2017</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><span id="Union.select-2018"><a href="#Union.select-2018"><span class="linenos">2018</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-2019"><a href="#Union.select-2019"><span class="linenos">2019</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-2020"><a href="#Union.select-2020"><span class="linenos">2020</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-2021"><a href="#Union.select-2021"><span class="linenos">2021</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Union.select-2022"><a href="#Union.select-2022"><span class="linenos">2022</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-2023"><a href="#Union.select-2023"><span class="linenos">2023</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Append to or set the SELECT of the union recursively.</span>
+</span><span id="Union.select-2024"><a href="#Union.select-2024"><span class="linenos">2024</span></a>
+</span><span id="Union.select-2025"><a href="#Union.select-2025"><span class="linenos">2025</span></a><span class="sd"> Example:</span>
+</span><span id="Union.select-2026"><a href="#Union.select-2026"><span class="linenos">2026</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="Union.select-2027"><a href="#Union.select-2027"><span class="linenos">2027</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;select a from x union select a from y union select a from z&quot;).select(&quot;b&quot;).sql()</span>
+</span><span id="Union.select-2028"><a href="#Union.select-2028"><span class="linenos">2028</span></a><span class="sd"> &#39;SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z&#39;</span>
+</span><span id="Union.select-2029"><a href="#Union.select-2029"><span class="linenos">2029</span></a>
+</span><span id="Union.select-2030"><a href="#Union.select-2030"><span class="linenos">2030</span></a><span class="sd"> Args:</span>
+</span><span id="Union.select-2031"><a href="#Union.select-2031"><span class="linenos">2031</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Union.select-2032"><a href="#Union.select-2032"><span class="linenos">2032</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Union.select-2033"><a href="#Union.select-2033"><span class="linenos">2033</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Union.select-2034"><a href="#Union.select-2034"><span class="linenos">2034</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Union.select-2035"><a href="#Union.select-2035"><span class="linenos">2035</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Union.select-2036"><a href="#Union.select-2036"><span class="linenos">2036</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Union.select-2037"><a href="#Union.select-2037"><span class="linenos">2037</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Union.select-2038"><a href="#Union.select-2038"><span class="linenos">2038</span></a>
+</span><span id="Union.select-2039"><a href="#Union.select-2039"><span class="linenos">2039</span></a><span class="sd"> Returns:</span>
+</span><span id="Union.select-2040"><a href="#Union.select-2040"><span class="linenos">2040</span></a><span class="sd"> Union: the modified expression.</span>
+</span><span id="Union.select-2041"><a href="#Union.select-2041"><span class="linenos">2041</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Union.select-2042"><a href="#Union.select-2042"><span class="linenos">2042</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
+</span><span id="Union.select-2043"><a href="#Union.select-2043"><span class="linenos">2043</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-2044"><a href="#Union.select-2044"><span class="linenos">2044</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-2045"><a href="#Union.select-2045"><span class="linenos">2045</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-2046"><a href="#Union.select-2046"><span class="linenos">2046</span></a> <span class="p">)</span>
+</span><span id="Union.select-2047"><a href="#Union.select-2047"><span class="linenos">2047</span></a> <span class="k">return</span> <span class="n">this</span>
</span></pre></div>
@@ -21174,8 +21671,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-2030"><a href="#Except-2030"><span class="linenos">2030</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-2031"><a href="#Except-2031"><span class="linenos">2031</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Except-2070"><a href="#Except-2070"><span class="linenos">2070</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-2071"><a href="#Except-2071"><span class="linenos">2071</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -21254,8 +21751,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-2034"><a href="#Intersect-2034"><span class="linenos">2034</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-2035"><a href="#Intersect-2035"><span class="linenos">2035</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Intersect-2074"><a href="#Intersect-2074"><span class="linenos">2074</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-2075"><a href="#Intersect-2075"><span class="linenos">2075</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -21334,13 +21831,13 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Unnest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unnest-2038"><a href="#Unnest-2038"><span class="linenos">2038</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-2039"><a href="#Unnest-2039"><span class="linenos">2039</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Unnest-2040"><a href="#Unnest-2040"><span class="linenos">2040</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-2041"><a href="#Unnest-2041"><span class="linenos">2041</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="Unnest-2042"><a href="#Unnest-2042"><span class="linenos">2042</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-2043"><a href="#Unnest-2043"><span class="linenos">2043</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-2044"><a href="#Unnest-2044"><span class="linenos">2044</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unnest-2078"><a href="#Unnest-2078"><span class="linenos">2078</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-2079"><a href="#Unnest-2079"><span class="linenos">2079</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Unnest-2080"><a href="#Unnest-2080"><span class="linenos">2080</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-2081"><a href="#Unnest-2081"><span class="linenos">2081</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="Unnest-2082"><a href="#Unnest-2082"><span class="linenos">2082</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-2083"><a href="#Unnest-2083"><span class="linenos">2083</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-2084"><a href="#Unnest-2084"><span class="linenos">2084</span></a> <span class="p">}</span>
</span></pre></div>
@@ -21409,15 +21906,15 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Update"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Update-2047"><a href="#Update-2047"><span class="linenos">2047</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-2048"><a href="#Update-2048"><span class="linenos">2048</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Update-2049"><a href="#Update-2049"><span class="linenos">2049</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-2050"><a href="#Update-2050"><span class="linenos">2050</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-2051"><a href="#Update-2051"><span class="linenos">2051</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-2052"><a href="#Update-2052"><span class="linenos">2052</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-2053"><a href="#Update-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="Update-2054"><a href="#Update-2054"><span class="linenos">2054</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-2055"><a href="#Update-2055"><span class="linenos">2055</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Update-2087"><a href="#Update-2087"><span class="linenos">2087</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-2088"><a href="#Update-2088"><span class="linenos">2088</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Update-2089"><a href="#Update-2089"><span class="linenos">2089</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-2090"><a href="#Update-2090"><span class="linenos">2090</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-2091"><a href="#Update-2091"><span class="linenos">2091</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-2092"><a href="#Update-2092"><span class="linenos">2092</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-2093"><a href="#Update-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="Update-2094"><a href="#Update-2094"><span class="linenos">2094</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-2095"><a href="#Update-2095"><span class="linenos">2095</span></a> <span class="p">}</span>
</span></pre></div>
@@ -21480,12 +21977,12 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Values"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Values-2058"><a href="#Values-2058"><span class="linenos">2058</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-2059"><a href="#Values-2059"><span class="linenos">2059</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Values-2060"><a href="#Values-2060"><span class="linenos">2060</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="Values-2061"><a href="#Values-2061"><span class="linenos">2061</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="Values-2062"><a href="#Values-2062"><span class="linenos">2062</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="Values-2063"><a href="#Values-2063"><span class="linenos">2063</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Values-2098"><a href="#Values-2098"><span class="linenos">2098</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-2099"><a href="#Values-2099"><span class="linenos">2099</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Values-2100"><a href="#Values-2100"><span class="linenos">2100</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="Values-2101"><a href="#Values-2101"><span class="linenos">2101</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="Values-2102"><a href="#Values-2102"><span class="linenos">2102</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="Values-2103"><a href="#Values-2103"><span class="linenos">2103</span></a> <span class="p">}</span>
</span></pre></div>
@@ -21554,8 +22051,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-2066"><a href="#Var-2066"><span class="linenos">2066</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-2067"><a href="#Var-2067"><span class="linenos">2067</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Var-2106"><a href="#Var-2106"><span class="linenos">2106</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-2107"><a href="#Var-2107"><span class="linenos">2107</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -21618,8 +22115,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Schema"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Schema-2070"><a href="#Schema-2070"><span class="linenos">2070</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-2071"><a href="#Schema-2071"><span class="linenos">2071</span></a> <span class="n">arg_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-2110"><a href="#Schema-2110"><span class="linenos">2110</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-2111"><a href="#Schema-2111"><span class="linenos">2111</span></a> <span class="n">arg_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>
@@ -21682,8 +22179,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Lock"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lock-2076"><a href="#Lock-2076"><span class="linenos">2076</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-2077"><a href="#Lock-2077"><span class="linenos">2077</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Lock-2116"><a href="#Lock-2116"><span class="linenos">2116</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-2117"><a href="#Lock-2117"><span class="linenos">2117</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></pre></div>
@@ -21746,591 +22243,591 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Select"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select-2080"><a href="#Select-2080"><span class="linenos">2080</span></a><span class="k">class</span> <span class="nc">Select</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span>
-</span><span id="Select-2081"><a href="#Select-2081"><span class="linenos">2081</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Select-2082"><a href="#Select-2082"><span class="linenos">2082</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-2083"><a href="#Select-2083"><span class="linenos">2083</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-2084"><a href="#Select-2084"><span class="linenos">2084</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-2085"><a href="#Select-2085"><span class="linenos">2085</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-2086"><a href="#Select-2086"><span class="linenos">2086</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-2087"><a href="#Select-2087"><span class="linenos">2087</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-2088"><a href="#Select-2088"><span class="linenos">2088</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-2089"><a href="#Select-2089"><span class="linenos">2089</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="Select-2090"><a href="#Select-2090"><span class="linenos">2090</span></a> <span class="p">}</span>
-</span><span id="Select-2091"><a href="#Select-2091"><span class="linenos">2091</span></a>
-</span><span id="Select-2092"><a href="#Select-2092"><span class="linenos">2092</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select-2093"><a href="#Select-2093"><span class="linenos">2093</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2094"><a href="#Select-2094"><span class="linenos">2094</span></a><span class="sd"> Set the FROM expression.</span>
-</span><span id="Select-2095"><a href="#Select-2095"><span class="linenos">2095</span></a>
-</span><span id="Select-2096"><a href="#Select-2096"><span class="linenos">2096</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2097"><a href="#Select-2097"><span class="linenos">2097</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
-</span><span id="Select-2098"><a href="#Select-2098"><span class="linenos">2098</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
-</span><span id="Select-2099"><a href="#Select-2099"><span class="linenos">2099</span></a>
-</span><span id="Select-2100"><a href="#Select-2100"><span class="linenos">2100</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2101"><a href="#Select-2101"><span class="linenos">2101</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2102"><a href="#Select-2102"><span class="linenos">2102</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
-</span><span id="Select-2103"><a href="#Select-2103"><span class="linenos">2103</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
-</span><span id="Select-2104"><a href="#Select-2104"><span class="linenos">2104</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select-2105"><a href="#Select-2105"><span class="linenos">2105</span></a><span class="sd"> Otherwise, this flattens all the `From` expression into a single expression.</span>
-</span><span id="Select-2106"><a href="#Select-2106"><span class="linenos">2106</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select-2107"><a href="#Select-2107"><span class="linenos">2107</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2108"><a href="#Select-2108"><span class="linenos">2108</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2109"><a href="#Select-2109"><span class="linenos">2109</span></a>
-</span><span id="Select-2110"><a href="#Select-2110"><span class="linenos">2110</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2111"><a href="#Select-2111"><span class="linenos">2111</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2112"><a href="#Select-2112"><span class="linenos">2112</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2113"><a href="#Select-2113"><span class="linenos">2113</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-2114"><a href="#Select-2114"><span class="linenos">2114</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2115"><a href="#Select-2115"><span class="linenos">2115</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2116"><a href="#Select-2116"><span class="linenos">2116</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-2117"><a href="#Select-2117"><span class="linenos">2117</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2118"><a href="#Select-2118"><span class="linenos">2118</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2119"><a href="#Select-2119"><span class="linenos">2119</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-2120"><a href="#Select-2120"><span class="linenos">2120</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
-</span><span id="Select-2121"><a href="#Select-2121"><span class="linenos">2121</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2122"><a href="#Select-2122"><span class="linenos">2122</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2123"><a href="#Select-2123"><span class="linenos">2123</span></a> <span class="p">)</span>
-</span><span id="Select-2124"><a href="#Select-2124"><span class="linenos">2124</span></a>
-</span><span id="Select-2125"><a href="#Select-2125"><span class="linenos">2125</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select-2126"><a href="#Select-2126"><span class="linenos">2126</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2127"><a href="#Select-2127"><span class="linenos">2127</span></a><span class="sd"> Set the GROUP BY expression.</span>
-</span><span id="Select-2128"><a href="#Select-2128"><span class="linenos">2128</span></a>
-</span><span id="Select-2129"><a href="#Select-2129"><span class="linenos">2129</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2130"><a href="#Select-2130"><span class="linenos">2130</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-2131"><a href="#Select-2131"><span class="linenos">2131</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
-</span><span id="Select-2132"><a href="#Select-2132"><span class="linenos">2132</span></a>
-</span><span id="Select-2133"><a href="#Select-2133"><span class="linenos">2133</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2134"><a href="#Select-2134"><span class="linenos">2134</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2135"><a href="#Select-2135"><span class="linenos">2135</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select-2136"><a href="#Select-2136"><span class="linenos">2136</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
-</span><span id="Select-2137"><a href="#Select-2137"><span class="linenos">2137</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-2138"><a href="#Select-2138"><span class="linenos">2138</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select-2139"><a href="#Select-2139"><span class="linenos">2139</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
-</span><span id="Select-2140"><a href="#Select-2140"><span class="linenos">2140</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select-2141"><a href="#Select-2141"><span class="linenos">2141</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2142"><a href="#Select-2142"><span class="linenos">2142</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2143"><a href="#Select-2143"><span class="linenos">2143</span></a>
-</span><span id="Select-2144"><a href="#Select-2144"><span class="linenos">2144</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2145"><a href="#Select-2145"><span class="linenos">2145</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2146"><a href="#Select-2146"><span class="linenos">2146</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2147"><a href="#Select-2147"><span class="linenos">2147</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-2148"><a href="#Select-2148"><span class="linenos">2148</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-2149"><a href="#Select-2149"><span class="linenos">2149</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-2150"><a href="#Select-2150"><span class="linenos">2150</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2151"><a href="#Select-2151"><span class="linenos">2151</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2152"><a href="#Select-2152"><span class="linenos">2152</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-2153"><a href="#Select-2153"><span class="linenos">2153</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2154"><a href="#Select-2154"><span class="linenos">2154</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2155"><a href="#Select-2155"><span class="linenos">2155</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-2156"><a href="#Select-2156"><span class="linenos">2156</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
-</span><span id="Select-2157"><a href="#Select-2157"><span class="linenos">2157</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2158"><a href="#Select-2158"><span class="linenos">2158</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2159"><a href="#Select-2159"><span class="linenos">2159</span></a> <span class="p">)</span>
-</span><span id="Select-2160"><a href="#Select-2160"><span class="linenos">2160</span></a>
-</span><span id="Select-2161"><a href="#Select-2161"><span class="linenos">2161</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select-2162"><a href="#Select-2162"><span class="linenos">2162</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2163"><a href="#Select-2163"><span class="linenos">2163</span></a><span class="sd"> Set the ORDER BY expression.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select-2120"><a href="#Select-2120"><span class="linenos">2120</span></a><span class="k">class</span> <span class="nc">Select</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span>
+</span><span id="Select-2121"><a href="#Select-2121"><span class="linenos">2121</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Select-2122"><a href="#Select-2122"><span class="linenos">2122</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-2123"><a href="#Select-2123"><span class="linenos">2123</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-2124"><a href="#Select-2124"><span class="linenos">2124</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-2125"><a href="#Select-2125"><span class="linenos">2125</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-2126"><a href="#Select-2126"><span class="linenos">2126</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-2127"><a href="#Select-2127"><span class="linenos">2127</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-2128"><a href="#Select-2128"><span class="linenos">2128</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-2129"><a href="#Select-2129"><span class="linenos">2129</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="Select-2130"><a href="#Select-2130"><span class="linenos">2130</span></a> <span class="p">}</span>
+</span><span id="Select-2131"><a href="#Select-2131"><span class="linenos">2131</span></a>
+</span><span id="Select-2132"><a href="#Select-2132"><span class="linenos">2132</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select-2133"><a href="#Select-2133"><span class="linenos">2133</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2134"><a href="#Select-2134"><span class="linenos">2134</span></a><span class="sd"> Set the FROM expression.</span>
+</span><span id="Select-2135"><a href="#Select-2135"><span class="linenos">2135</span></a>
+</span><span id="Select-2136"><a href="#Select-2136"><span class="linenos">2136</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2137"><a href="#Select-2137"><span class="linenos">2137</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
+</span><span id="Select-2138"><a href="#Select-2138"><span class="linenos">2138</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
+</span><span id="Select-2139"><a href="#Select-2139"><span class="linenos">2139</span></a>
+</span><span id="Select-2140"><a href="#Select-2140"><span class="linenos">2140</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2141"><a href="#Select-2141"><span class="linenos">2141</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select-2142"><a href="#Select-2142"><span class="linenos">2142</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
+</span><span id="Select-2143"><a href="#Select-2143"><span class="linenos">2143</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
+</span><span id="Select-2144"><a href="#Select-2144"><span class="linenos">2144</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Select-2145"><a href="#Select-2145"><span class="linenos">2145</span></a><span class="sd"> Otherwise, this flattens all the `From` expression into a single expression.</span>
+</span><span id="Select-2146"><a href="#Select-2146"><span class="linenos">2146</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Select-2147"><a href="#Select-2147"><span class="linenos">2147</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2148"><a href="#Select-2148"><span class="linenos">2148</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select-2149"><a href="#Select-2149"><span class="linenos">2149</span></a>
+</span><span id="Select-2150"><a href="#Select-2150"><span class="linenos">2150</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2151"><a href="#Select-2151"><span class="linenos">2151</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2152"><a href="#Select-2152"><span class="linenos">2152</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2153"><a href="#Select-2153"><span class="linenos">2153</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-2154"><a href="#Select-2154"><span class="linenos">2154</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2155"><a href="#Select-2155"><span class="linenos">2155</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2156"><a href="#Select-2156"><span class="linenos">2156</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-2157"><a href="#Select-2157"><span class="linenos">2157</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2158"><a href="#Select-2158"><span class="linenos">2158</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2159"><a href="#Select-2159"><span class="linenos">2159</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-2160"><a href="#Select-2160"><span class="linenos">2160</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
+</span><span id="Select-2161"><a href="#Select-2161"><span class="linenos">2161</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2162"><a href="#Select-2162"><span class="linenos">2162</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2163"><a href="#Select-2163"><span class="linenos">2163</span></a> <span class="p">)</span>
</span><span id="Select-2164"><a href="#Select-2164"><span class="linenos">2164</span></a>
-</span><span id="Select-2165"><a href="#Select-2165"><span class="linenos">2165</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2166"><a href="#Select-2166"><span class="linenos">2166</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).order_by(&quot;x DESC&quot;).sql()</span>
-</span><span id="Select-2167"><a href="#Select-2167"><span class="linenos">2167</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
+</span><span id="Select-2165"><a href="#Select-2165"><span class="linenos">2165</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select-2166"><a href="#Select-2166"><span class="linenos">2166</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2167"><a href="#Select-2167"><span class="linenos">2167</span></a><span class="sd"> Set the GROUP BY expression.</span>
</span><span id="Select-2168"><a href="#Select-2168"><span class="linenos">2168</span></a>
-</span><span id="Select-2169"><a href="#Select-2169"><span class="linenos">2169</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2170"><a href="#Select-2170"><span class="linenos">2170</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2171"><a href="#Select-2171"><span class="linenos">2171</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select-2172"><a href="#Select-2172"><span class="linenos">2172</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
-</span><span id="Select-2173"><a href="#Select-2173"><span class="linenos">2173</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select-2174"><a href="#Select-2174"><span class="linenos">2174</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select-2175"><a href="#Select-2175"><span class="linenos">2175</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select-2176"><a href="#Select-2176"><span class="linenos">2176</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2177"><a href="#Select-2177"><span class="linenos">2177</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2178"><a href="#Select-2178"><span class="linenos">2178</span></a>
-</span><span id="Select-2179"><a href="#Select-2179"><span class="linenos">2179</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2180"><a href="#Select-2180"><span class="linenos">2180</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2181"><a href="#Select-2181"><span class="linenos">2181</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2182"><a href="#Select-2182"><span class="linenos">2182</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-2183"><a href="#Select-2183"><span class="linenos">2183</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2184"><a href="#Select-2184"><span class="linenos">2184</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2185"><a href="#Select-2185"><span class="linenos">2185</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;order&quot;</span><span class="p">,</span>
-</span><span id="Select-2186"><a href="#Select-2186"><span class="linenos">2186</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2187"><a href="#Select-2187"><span class="linenos">2187</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2188"><a href="#Select-2188"><span class="linenos">2188</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;ORDER BY&quot;</span><span class="p">,</span>
-</span><span id="Select-2189"><a href="#Select-2189"><span class="linenos">2189</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
-</span><span id="Select-2190"><a href="#Select-2190"><span class="linenos">2190</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2191"><a href="#Select-2191"><span class="linenos">2191</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2192"><a href="#Select-2192"><span class="linenos">2192</span></a> <span class="p">)</span>
-</span><span id="Select-2193"><a href="#Select-2193"><span class="linenos">2193</span></a>
-</span><span id="Select-2194"><a href="#Select-2194"><span class="linenos">2194</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select-2195"><a href="#Select-2195"><span class="linenos">2195</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2196"><a href="#Select-2196"><span class="linenos">2196</span></a><span class="sd"> Set the SORT BY expression.</span>
-</span><span id="Select-2197"><a href="#Select-2197"><span class="linenos">2197</span></a>
-</span><span id="Select-2198"><a href="#Select-2198"><span class="linenos">2198</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2199"><a href="#Select-2199"><span class="linenos">2199</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql()</span>
-</span><span id="Select-2200"><a href="#Select-2200"><span class="linenos">2200</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
-</span><span id="Select-2201"><a href="#Select-2201"><span class="linenos">2201</span></a>
-</span><span id="Select-2202"><a href="#Select-2202"><span class="linenos">2202</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2203"><a href="#Select-2203"><span class="linenos">2203</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2204"><a href="#Select-2204"><span class="linenos">2204</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select-2205"><a href="#Select-2205"><span class="linenos">2205</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
-</span><span id="Select-2206"><a href="#Select-2206"><span class="linenos">2206</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select-2207"><a href="#Select-2207"><span class="linenos">2207</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select-2208"><a href="#Select-2208"><span class="linenos">2208</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select-2209"><a href="#Select-2209"><span class="linenos">2209</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2210"><a href="#Select-2210"><span class="linenos">2210</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2211"><a href="#Select-2211"><span class="linenos">2211</span></a>
-</span><span id="Select-2212"><a href="#Select-2212"><span class="linenos">2212</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2213"><a href="#Select-2213"><span class="linenos">2213</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2214"><a href="#Select-2214"><span class="linenos">2214</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2215"><a href="#Select-2215"><span class="linenos">2215</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-2216"><a href="#Select-2216"><span class="linenos">2216</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2217"><a href="#Select-2217"><span class="linenos">2217</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2218"><a href="#Select-2218"><span class="linenos">2218</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-2219"><a href="#Select-2219"><span class="linenos">2219</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2220"><a href="#Select-2220"><span class="linenos">2220</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2221"><a href="#Select-2221"><span class="linenos">2221</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-2222"><a href="#Select-2222"><span class="linenos">2222</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
-</span><span id="Select-2223"><a href="#Select-2223"><span class="linenos">2223</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2224"><a href="#Select-2224"><span class="linenos">2224</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2225"><a href="#Select-2225"><span class="linenos">2225</span></a> <span class="p">)</span>
-</span><span id="Select-2226"><a href="#Select-2226"><span class="linenos">2226</span></a>
-</span><span id="Select-2227"><a href="#Select-2227"><span class="linenos">2227</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select-2228"><a href="#Select-2228"><span class="linenos">2228</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2229"><a href="#Select-2229"><span class="linenos">2229</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
-</span><span id="Select-2230"><a href="#Select-2230"><span class="linenos">2230</span></a>
-</span><span id="Select-2231"><a href="#Select-2231"><span class="linenos">2231</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2232"><a href="#Select-2232"><span class="linenos">2232</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql()</span>
-</span><span id="Select-2233"><a href="#Select-2233"><span class="linenos">2233</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
-</span><span id="Select-2234"><a href="#Select-2234"><span class="linenos">2234</span></a>
-</span><span id="Select-2235"><a href="#Select-2235"><span class="linenos">2235</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2236"><a href="#Select-2236"><span class="linenos">2236</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2237"><a href="#Select-2237"><span class="linenos">2237</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select-2238"><a href="#Select-2238"><span class="linenos">2238</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
-</span><span id="Select-2239"><a href="#Select-2239"><span class="linenos">2239</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select-2240"><a href="#Select-2240"><span class="linenos">2240</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select-2241"><a href="#Select-2241"><span class="linenos">2241</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select-2242"><a href="#Select-2242"><span class="linenos">2242</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2243"><a href="#Select-2243"><span class="linenos">2243</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2244"><a href="#Select-2244"><span class="linenos">2244</span></a>
-</span><span id="Select-2245"><a href="#Select-2245"><span class="linenos">2245</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2246"><a href="#Select-2246"><span class="linenos">2246</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2247"><a href="#Select-2247"><span class="linenos">2247</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2248"><a href="#Select-2248"><span class="linenos">2248</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-2249"><a href="#Select-2249"><span class="linenos">2249</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2250"><a href="#Select-2250"><span class="linenos">2250</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2251"><a href="#Select-2251"><span class="linenos">2251</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-2252"><a href="#Select-2252"><span class="linenos">2252</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2253"><a href="#Select-2253"><span class="linenos">2253</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2254"><a href="#Select-2254"><span class="linenos">2254</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-2255"><a href="#Select-2255"><span class="linenos">2255</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
-</span><span id="Select-2256"><a href="#Select-2256"><span class="linenos">2256</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2257"><a href="#Select-2257"><span class="linenos">2257</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2258"><a href="#Select-2258"><span class="linenos">2258</span></a> <span class="p">)</span>
-</span><span id="Select-2259"><a href="#Select-2259"><span class="linenos">2259</span></a>
-</span><span id="Select-2260"><a href="#Select-2260"><span class="linenos">2260</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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-2261"><a href="#Select-2261"><span class="linenos">2261</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2262"><a href="#Select-2262"><span class="linenos">2262</span></a><span class="sd"> Set the LIMIT expression.</span>
-</span><span id="Select-2263"><a href="#Select-2263"><span class="linenos">2263</span></a>
-</span><span id="Select-2264"><a href="#Select-2264"><span class="linenos">2264</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2265"><a href="#Select-2265"><span class="linenos">2265</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).limit(10).sql()</span>
-</span><span id="Select-2266"><a href="#Select-2266"><span class="linenos">2266</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
-</span><span id="Select-2267"><a href="#Select-2267"><span class="linenos">2267</span></a>
-</span><span id="Select-2268"><a href="#Select-2268"><span class="linenos">2268</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2269"><a href="#Select-2269"><span class="linenos">2269</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="Select-2270"><a href="#Select-2270"><span class="linenos">2270</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Select-2271"><a href="#Select-2271"><span class="linenos">2271</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="Select-2272"><a href="#Select-2272"><span class="linenos">2272</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="Select-2273"><a href="#Select-2273"><span class="linenos">2273</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select-2274"><a href="#Select-2274"><span class="linenos">2274</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2275"><a href="#Select-2275"><span class="linenos">2275</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2276"><a href="#Select-2276"><span class="linenos">2276</span></a>
-</span><span id="Select-2277"><a href="#Select-2277"><span class="linenos">2277</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2278"><a href="#Select-2278"><span class="linenos">2278</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2279"><a href="#Select-2279"><span class="linenos">2279</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2280"><a href="#Select-2280"><span class="linenos">2280</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Select-2281"><a href="#Select-2281"><span class="linenos">2281</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="Select-2282"><a href="#Select-2282"><span class="linenos">2282</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2283"><a href="#Select-2283"><span class="linenos">2283</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;limit&quot;</span><span class="p">,</span>
-</span><span id="Select-2284"><a href="#Select-2284"><span class="linenos">2284</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
-</span><span id="Select-2285"><a href="#Select-2285"><span class="linenos">2285</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LIMIT&quot;</span><span class="p">,</span>
-</span><span id="Select-2286"><a href="#Select-2286"><span class="linenos">2286</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2287"><a href="#Select-2287"><span class="linenos">2287</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2288"><a href="#Select-2288"><span class="linenos">2288</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2289"><a href="#Select-2289"><span class="linenos">2289</span></a> <span class="p">)</span>
-</span><span id="Select-2290"><a href="#Select-2290"><span class="linenos">2290</span></a>
-</span><span id="Select-2291"><a href="#Select-2291"><span class="linenos">2291</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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-2292"><a href="#Select-2292"><span class="linenos">2292</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2293"><a href="#Select-2293"><span class="linenos">2293</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="Select-2294"><a href="#Select-2294"><span class="linenos">2294</span></a>
-</span><span id="Select-2295"><a href="#Select-2295"><span class="linenos">2295</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2296"><a href="#Select-2296"><span class="linenos">2296</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).offset(10).sql()</span>
-</span><span id="Select-2297"><a href="#Select-2297"><span class="linenos">2297</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
-</span><span id="Select-2298"><a href="#Select-2298"><span class="linenos">2298</span></a>
-</span><span id="Select-2299"><a href="#Select-2299"><span class="linenos">2299</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2300"><a href="#Select-2300"><span class="linenos">2300</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="Select-2301"><a href="#Select-2301"><span class="linenos">2301</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Select-2302"><a href="#Select-2302"><span class="linenos">2302</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
-</span><span id="Select-2303"><a href="#Select-2303"><span class="linenos">2303</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
-</span><span id="Select-2304"><a href="#Select-2304"><span class="linenos">2304</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select-2305"><a href="#Select-2305"><span class="linenos">2305</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2306"><a href="#Select-2306"><span class="linenos">2306</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select-2169"><a href="#Select-2169"><span class="linenos">2169</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2170"><a href="#Select-2170"><span class="linenos">2170</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-2171"><a href="#Select-2171"><span class="linenos">2171</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
+</span><span id="Select-2172"><a href="#Select-2172"><span class="linenos">2172</span></a>
+</span><span id="Select-2173"><a href="#Select-2173"><span class="linenos">2173</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2174"><a href="#Select-2174"><span class="linenos">2174</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select-2175"><a href="#Select-2175"><span class="linenos">2175</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select-2176"><a href="#Select-2176"><span class="linenos">2176</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
+</span><span id="Select-2177"><a href="#Select-2177"><span class="linenos">2177</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-2178"><a href="#Select-2178"><span class="linenos">2178</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Select-2179"><a href="#Select-2179"><span class="linenos">2179</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
+</span><span id="Select-2180"><a href="#Select-2180"><span class="linenos">2180</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Select-2181"><a href="#Select-2181"><span class="linenos">2181</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2182"><a href="#Select-2182"><span class="linenos">2182</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select-2183"><a href="#Select-2183"><span class="linenos">2183</span></a>
+</span><span id="Select-2184"><a href="#Select-2184"><span class="linenos">2184</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2185"><a href="#Select-2185"><span class="linenos">2185</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2186"><a href="#Select-2186"><span class="linenos">2186</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2187"><a href="#Select-2187"><span class="linenos">2187</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-2188"><a href="#Select-2188"><span class="linenos">2188</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-2189"><a href="#Select-2189"><span class="linenos">2189</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-2190"><a href="#Select-2190"><span class="linenos">2190</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2191"><a href="#Select-2191"><span class="linenos">2191</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2192"><a href="#Select-2192"><span class="linenos">2192</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-2193"><a href="#Select-2193"><span class="linenos">2193</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2194"><a href="#Select-2194"><span class="linenos">2194</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2195"><a href="#Select-2195"><span class="linenos">2195</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-2196"><a href="#Select-2196"><span class="linenos">2196</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
+</span><span id="Select-2197"><a href="#Select-2197"><span class="linenos">2197</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2198"><a href="#Select-2198"><span class="linenos">2198</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2199"><a href="#Select-2199"><span class="linenos">2199</span></a> <span class="p">)</span>
+</span><span id="Select-2200"><a href="#Select-2200"><span class="linenos">2200</span></a>
+</span><span id="Select-2201"><a href="#Select-2201"><span class="linenos">2201</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select-2202"><a href="#Select-2202"><span class="linenos">2202</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2203"><a href="#Select-2203"><span class="linenos">2203</span></a><span class="sd"> Set the ORDER BY expression.</span>
+</span><span id="Select-2204"><a href="#Select-2204"><span class="linenos">2204</span></a>
+</span><span id="Select-2205"><a href="#Select-2205"><span class="linenos">2205</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2206"><a href="#Select-2206"><span class="linenos">2206</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).order_by(&quot;x DESC&quot;).sql()</span>
+</span><span id="Select-2207"><a href="#Select-2207"><span class="linenos">2207</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
+</span><span id="Select-2208"><a href="#Select-2208"><span class="linenos">2208</span></a>
+</span><span id="Select-2209"><a href="#Select-2209"><span class="linenos">2209</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2210"><a href="#Select-2210"><span class="linenos">2210</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select-2211"><a href="#Select-2211"><span class="linenos">2211</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select-2212"><a href="#Select-2212"><span class="linenos">2212</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
+</span><span id="Select-2213"><a href="#Select-2213"><span class="linenos">2213</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Select-2214"><a href="#Select-2214"><span class="linenos">2214</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select-2215"><a href="#Select-2215"><span class="linenos">2215</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Select-2216"><a href="#Select-2216"><span class="linenos">2216</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2217"><a href="#Select-2217"><span class="linenos">2217</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select-2218"><a href="#Select-2218"><span class="linenos">2218</span></a>
+</span><span id="Select-2219"><a href="#Select-2219"><span class="linenos">2219</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2220"><a href="#Select-2220"><span class="linenos">2220</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2221"><a href="#Select-2221"><span class="linenos">2221</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2222"><a href="#Select-2222"><span class="linenos">2222</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-2223"><a href="#Select-2223"><span class="linenos">2223</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2224"><a href="#Select-2224"><span class="linenos">2224</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2225"><a href="#Select-2225"><span class="linenos">2225</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;order&quot;</span><span class="p">,</span>
+</span><span id="Select-2226"><a href="#Select-2226"><span class="linenos">2226</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2227"><a href="#Select-2227"><span class="linenos">2227</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2228"><a href="#Select-2228"><span class="linenos">2228</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;ORDER BY&quot;</span><span class="p">,</span>
+</span><span id="Select-2229"><a href="#Select-2229"><span class="linenos">2229</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
+</span><span id="Select-2230"><a href="#Select-2230"><span class="linenos">2230</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2231"><a href="#Select-2231"><span class="linenos">2231</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2232"><a href="#Select-2232"><span class="linenos">2232</span></a> <span class="p">)</span>
+</span><span id="Select-2233"><a href="#Select-2233"><span class="linenos">2233</span></a>
+</span><span id="Select-2234"><a href="#Select-2234"><span class="linenos">2234</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select-2235"><a href="#Select-2235"><span class="linenos">2235</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2236"><a href="#Select-2236"><span class="linenos">2236</span></a><span class="sd"> Set the SORT BY expression.</span>
+</span><span id="Select-2237"><a href="#Select-2237"><span class="linenos">2237</span></a>
+</span><span id="Select-2238"><a href="#Select-2238"><span class="linenos">2238</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2239"><a href="#Select-2239"><span class="linenos">2239</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql()</span>
+</span><span id="Select-2240"><a href="#Select-2240"><span class="linenos">2240</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
+</span><span id="Select-2241"><a href="#Select-2241"><span class="linenos">2241</span></a>
+</span><span id="Select-2242"><a href="#Select-2242"><span class="linenos">2242</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2243"><a href="#Select-2243"><span class="linenos">2243</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select-2244"><a href="#Select-2244"><span class="linenos">2244</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select-2245"><a href="#Select-2245"><span class="linenos">2245</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
+</span><span id="Select-2246"><a href="#Select-2246"><span class="linenos">2246</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Select-2247"><a href="#Select-2247"><span class="linenos">2247</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select-2248"><a href="#Select-2248"><span class="linenos">2248</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Select-2249"><a href="#Select-2249"><span class="linenos">2249</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2250"><a href="#Select-2250"><span class="linenos">2250</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select-2251"><a href="#Select-2251"><span class="linenos">2251</span></a>
+</span><span id="Select-2252"><a href="#Select-2252"><span class="linenos">2252</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2253"><a href="#Select-2253"><span class="linenos">2253</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2254"><a href="#Select-2254"><span class="linenos">2254</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2255"><a href="#Select-2255"><span class="linenos">2255</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-2256"><a href="#Select-2256"><span class="linenos">2256</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2257"><a href="#Select-2257"><span class="linenos">2257</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2258"><a href="#Select-2258"><span class="linenos">2258</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-2259"><a href="#Select-2259"><span class="linenos">2259</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2260"><a href="#Select-2260"><span class="linenos">2260</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2261"><a href="#Select-2261"><span class="linenos">2261</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-2262"><a href="#Select-2262"><span class="linenos">2262</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
+</span><span id="Select-2263"><a href="#Select-2263"><span class="linenos">2263</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2264"><a href="#Select-2264"><span class="linenos">2264</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2265"><a href="#Select-2265"><span class="linenos">2265</span></a> <span class="p">)</span>
+</span><span id="Select-2266"><a href="#Select-2266"><span class="linenos">2266</span></a>
+</span><span id="Select-2267"><a href="#Select-2267"><span class="linenos">2267</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select-2268"><a href="#Select-2268"><span class="linenos">2268</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2269"><a href="#Select-2269"><span class="linenos">2269</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
+</span><span id="Select-2270"><a href="#Select-2270"><span class="linenos">2270</span></a>
+</span><span id="Select-2271"><a href="#Select-2271"><span class="linenos">2271</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2272"><a href="#Select-2272"><span class="linenos">2272</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql()</span>
+</span><span id="Select-2273"><a href="#Select-2273"><span class="linenos">2273</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
+</span><span id="Select-2274"><a href="#Select-2274"><span class="linenos">2274</span></a>
+</span><span id="Select-2275"><a href="#Select-2275"><span class="linenos">2275</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2276"><a href="#Select-2276"><span class="linenos">2276</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select-2277"><a href="#Select-2277"><span class="linenos">2277</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select-2278"><a href="#Select-2278"><span class="linenos">2278</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
+</span><span id="Select-2279"><a href="#Select-2279"><span class="linenos">2279</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Select-2280"><a href="#Select-2280"><span class="linenos">2280</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select-2281"><a href="#Select-2281"><span class="linenos">2281</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Select-2282"><a href="#Select-2282"><span class="linenos">2282</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2283"><a href="#Select-2283"><span class="linenos">2283</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select-2284"><a href="#Select-2284"><span class="linenos">2284</span></a>
+</span><span id="Select-2285"><a href="#Select-2285"><span class="linenos">2285</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2286"><a href="#Select-2286"><span class="linenos">2286</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2287"><a href="#Select-2287"><span class="linenos">2287</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2288"><a href="#Select-2288"><span class="linenos">2288</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-2289"><a href="#Select-2289"><span class="linenos">2289</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2290"><a href="#Select-2290"><span class="linenos">2290</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2291"><a href="#Select-2291"><span class="linenos">2291</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-2292"><a href="#Select-2292"><span class="linenos">2292</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2293"><a href="#Select-2293"><span class="linenos">2293</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2294"><a href="#Select-2294"><span class="linenos">2294</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-2295"><a href="#Select-2295"><span class="linenos">2295</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
+</span><span id="Select-2296"><a href="#Select-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="Select-2297"><a href="#Select-2297"><span class="linenos">2297</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2298"><a href="#Select-2298"><span class="linenos">2298</span></a> <span class="p">)</span>
+</span><span id="Select-2299"><a href="#Select-2299"><span class="linenos">2299</span></a>
+</span><span id="Select-2300"><a href="#Select-2300"><span class="linenos">2300</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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-2301"><a href="#Select-2301"><span class="linenos">2301</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2302"><a href="#Select-2302"><span class="linenos">2302</span></a><span class="sd"> Set the LIMIT expression.</span>
+</span><span id="Select-2303"><a href="#Select-2303"><span class="linenos">2303</span></a>
+</span><span id="Select-2304"><a href="#Select-2304"><span class="linenos">2304</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2305"><a href="#Select-2305"><span class="linenos">2305</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).limit(10).sql()</span>
+</span><span id="Select-2306"><a href="#Select-2306"><span class="linenos">2306</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
</span><span id="Select-2307"><a href="#Select-2307"><span class="linenos">2307</span></a>
-</span><span id="Select-2308"><a href="#Select-2308"><span class="linenos">2308</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2309"><a href="#Select-2309"><span class="linenos">2309</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2310"><a href="#Select-2310"><span class="linenos">2310</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2311"><a href="#Select-2311"><span class="linenos">2311</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Select-2312"><a href="#Select-2312"><span class="linenos">2312</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="Select-2313"><a href="#Select-2313"><span class="linenos">2313</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2314"><a href="#Select-2314"><span class="linenos">2314</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;offset&quot;</span><span class="p">,</span>
-</span><span id="Select-2315"><a href="#Select-2315"><span class="linenos">2315</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
-</span><span id="Select-2316"><a href="#Select-2316"><span class="linenos">2316</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;OFFSET&quot;</span><span class="p">,</span>
-</span><span id="Select-2317"><a href="#Select-2317"><span class="linenos">2317</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2318"><a href="#Select-2318"><span class="linenos">2318</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2319"><a href="#Select-2319"><span class="linenos">2319</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2320"><a href="#Select-2320"><span class="linenos">2320</span></a> <span class="p">)</span>
-</span><span id="Select-2321"><a href="#Select-2321"><span class="linenos">2321</span></a>
-</span><span id="Select-2322"><a href="#Select-2322"><span class="linenos">2322</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Select-2323"><a href="#Select-2323"><span class="linenos">2323</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2324"><a href="#Select-2324"><span class="linenos">2324</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><span id="Select-2325"><a href="#Select-2325"><span class="linenos">2325</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-2326"><a href="#Select-2326"><span class="linenos">2326</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-2327"><a href="#Select-2327"><span class="linenos">2327</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-2328"><a href="#Select-2328"><span class="linenos">2328</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2329"><a href="#Select-2329"><span class="linenos">2329</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2330"><a href="#Select-2330"><span class="linenos">2330</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2331"><a href="#Select-2331"><span class="linenos">2331</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
-</span><span id="Select-2332"><a href="#Select-2332"><span class="linenos">2332</span></a>
-</span><span id="Select-2333"><a href="#Select-2333"><span class="linenos">2333</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2334"><a href="#Select-2334"><span class="linenos">2334</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
-</span><span id="Select-2335"><a href="#Select-2335"><span class="linenos">2335</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
-</span><span id="Select-2336"><a href="#Select-2336"><span class="linenos">2336</span></a>
-</span><span id="Select-2337"><a href="#Select-2337"><span class="linenos">2337</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2338"><a href="#Select-2338"><span class="linenos">2338</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-2339"><a href="#Select-2339"><span class="linenos">2339</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-2340"><a href="#Select-2340"><span class="linenos">2340</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select-2341"><a href="#Select-2341"><span class="linenos">2341</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select-2342"><a href="#Select-2342"><span class="linenos">2342</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select-2343"><a href="#Select-2343"><span class="linenos">2343</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2344"><a href="#Select-2344"><span class="linenos">2344</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select-2345"><a href="#Select-2345"><span class="linenos">2345</span></a>
-</span><span id="Select-2346"><a href="#Select-2346"><span class="linenos">2346</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2347"><a href="#Select-2347"><span class="linenos">2347</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2348"><a href="#Select-2348"><span class="linenos">2348</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2349"><a href="#Select-2349"><span class="linenos">2349</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-2350"><a href="#Select-2350"><span class="linenos">2350</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2351"><a href="#Select-2351"><span class="linenos">2351</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2352"><a href="#Select-2352"><span class="linenos">2352</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-2353"><a href="#Select-2353"><span class="linenos">2353</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2354"><a href="#Select-2354"><span class="linenos">2354</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2355"><a href="#Select-2355"><span class="linenos">2355</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2356"><a href="#Select-2356"><span class="linenos">2356</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2357"><a href="#Select-2357"><span class="linenos">2357</span></a> <span class="p">)</span>
-</span><span id="Select-2358"><a href="#Select-2358"><span class="linenos">2358</span></a>
-</span><span id="Select-2359"><a href="#Select-2359"><span class="linenos">2359</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select-2360"><a href="#Select-2360"><span class="linenos">2360</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2361"><a href="#Select-2361"><span class="linenos">2361</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
-</span><span id="Select-2362"><a href="#Select-2362"><span class="linenos">2362</span></a>
-</span><span id="Select-2363"><a href="#Select-2363"><span class="linenos">2363</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2364"><a href="#Select-2364"><span class="linenos">2364</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-2365"><a href="#Select-2365"><span class="linenos">2365</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
-</span><span id="Select-2366"><a href="#Select-2366"><span class="linenos">2366</span></a>
-</span><span id="Select-2367"><a href="#Select-2367"><span class="linenos">2367</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2368"><a href="#Select-2368"><span class="linenos">2368</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2369"><a href="#Select-2369"><span class="linenos">2369</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-2370"><a href="#Select-2370"><span class="linenos">2370</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select-2371"><a href="#Select-2371"><span class="linenos">2371</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select-2372"><a href="#Select-2372"><span class="linenos">2372</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select-2373"><a href="#Select-2373"><span class="linenos">2373</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2374"><a href="#Select-2374"><span class="linenos">2374</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2375"><a href="#Select-2375"><span class="linenos">2375</span></a>
-</span><span id="Select-2376"><a href="#Select-2376"><span class="linenos">2376</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2377"><a href="#Select-2377"><span class="linenos">2377</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2378"><a href="#Select-2378"><span class="linenos">2378</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2379"><a href="#Select-2379"><span class="linenos">2379</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-2380"><a href="#Select-2380"><span class="linenos">2380</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2381"><a href="#Select-2381"><span class="linenos">2381</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2382"><a href="#Select-2382"><span class="linenos">2382</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-2383"><a href="#Select-2383"><span class="linenos">2383</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2384"><a href="#Select-2384"><span class="linenos">2384</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
-</span><span id="Select-2385"><a href="#Select-2385"><span class="linenos">2385</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-2386"><a href="#Select-2386"><span class="linenos">2386</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2387"><a href="#Select-2387"><span class="linenos">2387</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2388"><a href="#Select-2388"><span class="linenos">2388</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2389"><a href="#Select-2389"><span class="linenos">2389</span></a> <span class="p">)</span>
-</span><span id="Select-2390"><a href="#Select-2390"><span class="linenos">2390</span></a>
-</span><span id="Select-2391"><a href="#Select-2391"><span class="linenos">2391</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
-</span><span id="Select-2392"><a href="#Select-2392"><span class="linenos">2392</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2393"><a href="#Select-2393"><span class="linenos">2393</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="Select-2394"><a href="#Select-2394"><span class="linenos">2394</span></a> <span class="n">on</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-2395"><a href="#Select-2395"><span class="linenos">2395</span></a> <span class="n">using</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-2396"><a href="#Select-2396"><span class="linenos">2396</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-2397"><a href="#Select-2397"><span class="linenos">2397</span></a> <span class="n">join_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-2398"><a href="#Select-2398"><span class="linenos">2398</span></a> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-2399"><a href="#Select-2399"><span class="linenos">2399</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-2400"><a href="#Select-2400"><span class="linenos">2400</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-2401"><a href="#Select-2401"><span class="linenos">2401</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2402"><a href="#Select-2402"><span class="linenos">2402</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-2403"><a href="#Select-2403"><span class="linenos">2403</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2404"><a href="#Select-2404"><span class="linenos">2404</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
-</span><span id="Select-2405"><a href="#Select-2405"><span class="linenos">2405</span></a>
-</span><span id="Select-2406"><a href="#Select-2406"><span class="linenos">2406</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2407"><a href="#Select-2407"><span class="linenos">2407</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-2408"><a href="#Select-2408"><span class="linenos">2408</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</span><span id="Select-2409"><a href="#Select-2409"><span class="linenos">2409</span></a>
-</span><span id="Select-2410"><a href="#Select-2410"><span class="linenos">2410</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-2411"><a href="#Select-2411"><span class="linenos">2411</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
-</span><span id="Select-2412"><a href="#Select-2412"><span class="linenos">2412</span></a>
-</span><span id="Select-2413"><a href="#Select-2413"><span class="linenos">2413</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
-</span><span id="Select-2414"><a href="#Select-2414"><span class="linenos">2414</span></a>
-</span><span id="Select-2415"><a href="#Select-2415"><span class="linenos">2415</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-2416"><a href="#Select-2416"><span class="linenos">2416</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</span><span id="Select-2417"><a href="#Select-2417"><span class="linenos">2417</span></a>
-</span><span id="Select-2418"><a href="#Select-2418"><span class="linenos">2418</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2419"><a href="#Select-2419"><span class="linenos">2419</span></a><span class="sd"> expression (str | Expression): the SQL code string to parse.</span>
-</span><span id="Select-2420"><a href="#Select-2420"><span class="linenos">2420</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-2421"><a href="#Select-2421"><span class="linenos">2421</span></a><span class="sd"> on (str | Expression): optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
-</span><span id="Select-2422"><a href="#Select-2422"><span class="linenos">2422</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-2423"><a href="#Select-2423"><span class="linenos">2423</span></a><span class="sd"> using (str | Expression): optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
-</span><span id="Select-2424"><a href="#Select-2424"><span class="linenos">2424</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-2425"><a href="#Select-2425"><span class="linenos">2425</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select-2426"><a href="#Select-2426"><span class="linenos">2426</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select-2427"><a href="#Select-2427"><span class="linenos">2427</span></a><span class="sd"> join_type (str): If set, alter the parsed join type</span>
-</span><span id="Select-2428"><a href="#Select-2428"><span class="linenos">2428</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select-2429"><a href="#Select-2429"><span class="linenos">2429</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2430"><a href="#Select-2430"><span class="linenos">2430</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2431"><a href="#Select-2431"><span class="linenos">2431</span></a>
-</span><span id="Select-2432"><a href="#Select-2432"><span class="linenos">2432</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2433"><a href="#Select-2433"><span class="linenos">2433</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2434"><a href="#Select-2434"><span class="linenos">2434</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2435"><a href="#Select-2435"><span class="linenos">2435</span></a> <span class="n">parse_args</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-2436"><a href="#Select-2436"><span class="linenos">2436</span></a>
-</span><span id="Select-2437"><a href="#Select-2437"><span class="linenos">2437</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="Select-2438"><a href="#Select-2438"><span class="linenos">2438</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-2439"><a href="#Select-2439"><span class="linenos">2439</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="Select-2440"><a href="#Select-2440"><span class="linenos">2440</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-2441"><a href="#Select-2441"><span class="linenos">2441</span></a>
-</span><span id="Select-2442"><a href="#Select-2442"><span class="linenos">2442</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-2443"><a href="#Select-2443"><span class="linenos">2443</span></a>
-</span><span id="Select-2444"><a href="#Select-2444"><span class="linenos">2444</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-2445"><a href="#Select-2445"><span class="linenos">2445</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-2446"><a href="#Select-2446"><span class="linenos">2446</span></a>
-</span><span id="Select-2447"><a href="#Select-2447"><span class="linenos">2447</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
-</span><span id="Select-2448"><a href="#Select-2448"><span class="linenos">2448</span></a> <span class="n">natural</span><span 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-2449"><a href="#Select-2449"><span class="linenos">2449</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-2450"><a href="#Select-2450"><span class="linenos">2450</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-2451"><a href="#Select-2451"><span class="linenos">2451</span></a>
-</span><span id="Select-2452"><a href="#Select-2452"><span class="linenos">2452</span></a> <span class="n">natural</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-2453"><a href="#Select-2453"><span class="linenos">2453</span></a>
-</span><span id="Select-2454"><a href="#Select-2454"><span class="linenos">2454</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span>
-</span><span id="Select-2455"><a href="#Select-2455"><span class="linenos">2455</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;natural&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
-</span><span id="Select-2456"><a href="#Select-2456"><span class="linenos">2456</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
-</span><span id="Select-2457"><a href="#Select-2457"><span class="linenos">2457</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-2458"><a href="#Select-2458"><span class="linenos">2458</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
-</span><span id="Select-2459"><a href="#Select-2459"><span class="linenos">2459</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-2460"><a href="#Select-2460"><span class="linenos">2460</span></a>
-</span><span id="Select-2461"><a href="#Select-2461"><span class="linenos">2461</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
-</span><span id="Select-2462"><a href="#Select-2462"><span class="linenos">2462</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_collection</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="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Select-2463"><a href="#Select-2463"><span class="linenos">2463</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-2464"><a href="#Select-2464"><span class="linenos">2464</span></a>
-</span><span id="Select-2465"><a href="#Select-2465"><span class="linenos">2465</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
-</span><span id="Select-2466"><a href="#Select-2466"><span class="linenos">2466</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-2467"><a href="#Select-2467"><span class="linenos">2467</span></a> <span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
-</span><span id="Select-2468"><a href="#Select-2468"><span class="linenos">2468</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
-</span><span id="Select-2469"><a href="#Select-2469"><span class="linenos">2469</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-2470"><a href="#Select-2470"><span class="linenos">2470</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2471"><a href="#Select-2471"><span class="linenos">2471</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2472"><a href="#Select-2472"><span class="linenos">2472</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2473"><a href="#Select-2473"><span class="linenos">2473</span></a> <span class="p">)</span>
-</span><span id="Select-2474"><a href="#Select-2474"><span class="linenos">2474</span></a>
-</span><span id="Select-2475"><a href="#Select-2475"><span class="linenos">2475</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
-</span><span id="Select-2476"><a href="#Select-2476"><span class="linenos">2476</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-2477"><a href="#Select-2477"><span class="linenos">2477</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-2478"><a href="#Select-2478"><span class="linenos">2478</span></a> <span class="n">join</span><span class="p">,</span>
-</span><span id="Select-2479"><a href="#Select-2479"><span class="linenos">2479</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2480"><a href="#Select-2480"><span class="linenos">2480</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-2481"><a href="#Select-2481"><span class="linenos">2481</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2482"><a href="#Select-2482"><span class="linenos">2482</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2483"><a href="#Select-2483"><span class="linenos">2483</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2484"><a href="#Select-2484"><span class="linenos">2484</span></a> <span class="p">)</span>
-</span><span id="Select-2485"><a href="#Select-2485"><span class="linenos">2485</span></a>
-</span><span id="Select-2486"><a href="#Select-2486"><span class="linenos">2486</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select-2487"><a href="#Select-2487"><span class="linenos">2487</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2488"><a href="#Select-2488"><span class="linenos">2488</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="Select-2489"><a href="#Select-2489"><span class="linenos">2489</span></a>
-</span><span id="Select-2490"><a href="#Select-2490"><span class="linenos">2490</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2491"><a href="#Select-2491"><span class="linenos">2491</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-2492"><a href="#Select-2492"><span class="linenos">2492</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-2308"><a href="#Select-2308"><span class="linenos">2308</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2309"><a href="#Select-2309"><span class="linenos">2309</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
+</span><span id="Select-2310"><a href="#Select-2310"><span class="linenos">2310</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Select-2311"><a href="#Select-2311"><span class="linenos">2311</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="Select-2312"><a href="#Select-2312"><span class="linenos">2312</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="Select-2313"><a href="#Select-2313"><span class="linenos">2313</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Select-2314"><a href="#Select-2314"><span class="linenos">2314</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2315"><a href="#Select-2315"><span class="linenos">2315</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select-2316"><a href="#Select-2316"><span class="linenos">2316</span></a>
+</span><span id="Select-2317"><a href="#Select-2317"><span class="linenos">2317</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2318"><a href="#Select-2318"><span class="linenos">2318</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2319"><a href="#Select-2319"><span class="linenos">2319</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2320"><a href="#Select-2320"><span class="linenos">2320</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select-2321"><a href="#Select-2321"><span class="linenos">2321</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="Select-2322"><a href="#Select-2322"><span class="linenos">2322</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2323"><a href="#Select-2323"><span class="linenos">2323</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;limit&quot;</span><span class="p">,</span>
+</span><span id="Select-2324"><a href="#Select-2324"><span class="linenos">2324</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
+</span><span id="Select-2325"><a href="#Select-2325"><span class="linenos">2325</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LIMIT&quot;</span><span class="p">,</span>
+</span><span id="Select-2326"><a href="#Select-2326"><span class="linenos">2326</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2327"><a href="#Select-2327"><span class="linenos">2327</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2328"><a href="#Select-2328"><span class="linenos">2328</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2329"><a href="#Select-2329"><span class="linenos">2329</span></a> <span class="p">)</span>
+</span><span id="Select-2330"><a href="#Select-2330"><span class="linenos">2330</span></a>
+</span><span id="Select-2331"><a href="#Select-2331"><span class="linenos">2331</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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-2332"><a href="#Select-2332"><span class="linenos">2332</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2333"><a href="#Select-2333"><span class="linenos">2333</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="Select-2334"><a href="#Select-2334"><span class="linenos">2334</span></a>
+</span><span id="Select-2335"><a href="#Select-2335"><span class="linenos">2335</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2336"><a href="#Select-2336"><span class="linenos">2336</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).offset(10).sql()</span>
+</span><span id="Select-2337"><a href="#Select-2337"><span class="linenos">2337</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
+</span><span id="Select-2338"><a href="#Select-2338"><span class="linenos">2338</span></a>
+</span><span id="Select-2339"><a href="#Select-2339"><span class="linenos">2339</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2340"><a href="#Select-2340"><span class="linenos">2340</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
+</span><span id="Select-2341"><a href="#Select-2341"><span class="linenos">2341</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Select-2342"><a href="#Select-2342"><span class="linenos">2342</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
+</span><span id="Select-2343"><a href="#Select-2343"><span class="linenos">2343</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
+</span><span id="Select-2344"><a href="#Select-2344"><span class="linenos">2344</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Select-2345"><a href="#Select-2345"><span class="linenos">2345</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2346"><a href="#Select-2346"><span class="linenos">2346</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select-2347"><a href="#Select-2347"><span class="linenos">2347</span></a>
+</span><span id="Select-2348"><a href="#Select-2348"><span class="linenos">2348</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2349"><a href="#Select-2349"><span class="linenos">2349</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2350"><a href="#Select-2350"><span class="linenos">2350</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2351"><a href="#Select-2351"><span class="linenos">2351</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select-2352"><a href="#Select-2352"><span class="linenos">2352</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="Select-2353"><a href="#Select-2353"><span class="linenos">2353</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2354"><a href="#Select-2354"><span class="linenos">2354</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;offset&quot;</span><span class="p">,</span>
+</span><span id="Select-2355"><a href="#Select-2355"><span class="linenos">2355</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
+</span><span id="Select-2356"><a href="#Select-2356"><span class="linenos">2356</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;OFFSET&quot;</span><span class="p">,</span>
+</span><span id="Select-2357"><a href="#Select-2357"><span class="linenos">2357</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2358"><a href="#Select-2358"><span class="linenos">2358</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2359"><a href="#Select-2359"><span class="linenos">2359</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2360"><a href="#Select-2360"><span class="linenos">2360</span></a> <span class="p">)</span>
+</span><span id="Select-2361"><a href="#Select-2361"><span class="linenos">2361</span></a>
+</span><span id="Select-2362"><a href="#Select-2362"><span class="linenos">2362</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Select-2363"><a href="#Select-2363"><span class="linenos">2363</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2364"><a href="#Select-2364"><span class="linenos">2364</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><span id="Select-2365"><a href="#Select-2365"><span class="linenos">2365</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-2366"><a href="#Select-2366"><span class="linenos">2366</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-2367"><a href="#Select-2367"><span class="linenos">2367</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-2368"><a href="#Select-2368"><span class="linenos">2368</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2369"><a href="#Select-2369"><span class="linenos">2369</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2370"><a href="#Select-2370"><span class="linenos">2370</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2371"><a href="#Select-2371"><span class="linenos">2371</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
+</span><span id="Select-2372"><a href="#Select-2372"><span class="linenos">2372</span></a>
+</span><span id="Select-2373"><a href="#Select-2373"><span class="linenos">2373</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2374"><a href="#Select-2374"><span class="linenos">2374</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
+</span><span id="Select-2375"><a href="#Select-2375"><span class="linenos">2375</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
+</span><span id="Select-2376"><a href="#Select-2376"><span class="linenos">2376</span></a>
+</span><span id="Select-2377"><a href="#Select-2377"><span class="linenos">2377</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2378"><a href="#Select-2378"><span class="linenos">2378</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-2379"><a href="#Select-2379"><span class="linenos">2379</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-2380"><a href="#Select-2380"><span class="linenos">2380</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-2381"><a href="#Select-2381"><span class="linenos">2381</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select-2382"><a href="#Select-2382"><span class="linenos">2382</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select-2383"><a href="#Select-2383"><span class="linenos">2383</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2384"><a href="#Select-2384"><span class="linenos">2384</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-2385"><a href="#Select-2385"><span class="linenos">2385</span></a>
+</span><span id="Select-2386"><a href="#Select-2386"><span class="linenos">2386</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2387"><a href="#Select-2387"><span class="linenos">2387</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2388"><a href="#Select-2388"><span class="linenos">2388</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2389"><a href="#Select-2389"><span class="linenos">2389</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-2390"><a href="#Select-2390"><span class="linenos">2390</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2391"><a href="#Select-2391"><span class="linenos">2391</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2392"><a href="#Select-2392"><span class="linenos">2392</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-2393"><a href="#Select-2393"><span class="linenos">2393</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2394"><a href="#Select-2394"><span class="linenos">2394</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2395"><a href="#Select-2395"><span class="linenos">2395</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2396"><a href="#Select-2396"><span class="linenos">2396</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2397"><a href="#Select-2397"><span class="linenos">2397</span></a> <span class="p">)</span>
+</span><span id="Select-2398"><a href="#Select-2398"><span class="linenos">2398</span></a>
+</span><span id="Select-2399"><a href="#Select-2399"><span class="linenos">2399</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select-2400"><a href="#Select-2400"><span class="linenos">2400</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2401"><a href="#Select-2401"><span class="linenos">2401</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
+</span><span id="Select-2402"><a href="#Select-2402"><span class="linenos">2402</span></a>
+</span><span id="Select-2403"><a href="#Select-2403"><span class="linenos">2403</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2404"><a href="#Select-2404"><span class="linenos">2404</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-2405"><a href="#Select-2405"><span class="linenos">2405</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
+</span><span id="Select-2406"><a href="#Select-2406"><span class="linenos">2406</span></a>
+</span><span id="Select-2407"><a href="#Select-2407"><span class="linenos">2407</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2408"><a href="#Select-2408"><span class="linenos">2408</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select-2409"><a href="#Select-2409"><span class="linenos">2409</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-2410"><a href="#Select-2410"><span class="linenos">2410</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Select-2411"><a href="#Select-2411"><span class="linenos">2411</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select-2412"><a href="#Select-2412"><span class="linenos">2412</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="Select-2413"><a href="#Select-2413"><span class="linenos">2413</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2414"><a href="#Select-2414"><span class="linenos">2414</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select-2415"><a href="#Select-2415"><span class="linenos">2415</span></a>
+</span><span id="Select-2416"><a href="#Select-2416"><span class="linenos">2416</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2417"><a href="#Select-2417"><span class="linenos">2417</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2418"><a href="#Select-2418"><span class="linenos">2418</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2419"><a href="#Select-2419"><span class="linenos">2419</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-2420"><a href="#Select-2420"><span class="linenos">2420</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2421"><a href="#Select-2421"><span class="linenos">2421</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2422"><a href="#Select-2422"><span class="linenos">2422</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-2423"><a href="#Select-2423"><span class="linenos">2423</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2424"><a href="#Select-2424"><span class="linenos">2424</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
+</span><span id="Select-2425"><a href="#Select-2425"><span class="linenos">2425</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-2426"><a href="#Select-2426"><span class="linenos">2426</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2427"><a href="#Select-2427"><span class="linenos">2427</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2428"><a href="#Select-2428"><span class="linenos">2428</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2429"><a href="#Select-2429"><span class="linenos">2429</span></a> <span class="p">)</span>
+</span><span id="Select-2430"><a href="#Select-2430"><span class="linenos">2430</span></a>
+</span><span id="Select-2431"><a href="#Select-2431"><span class="linenos">2431</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
+</span><span id="Select-2432"><a href="#Select-2432"><span class="linenos">2432</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2433"><a href="#Select-2433"><span class="linenos">2433</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="Select-2434"><a href="#Select-2434"><span class="linenos">2434</span></a> <span class="n">on</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="Select-2435"><a href="#Select-2435"><span class="linenos">2435</span></a> <span class="n">using</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="Select-2436"><a href="#Select-2436"><span class="linenos">2436</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-2437"><a href="#Select-2437"><span class="linenos">2437</span></a> <span class="n">join_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="Select-2438"><a href="#Select-2438"><span class="linenos">2438</span></a> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="Select-2439"><a href="#Select-2439"><span class="linenos">2439</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="Select-2440"><a href="#Select-2440"><span class="linenos">2440</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-2441"><a href="#Select-2441"><span class="linenos">2441</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2442"><a href="#Select-2442"><span class="linenos">2442</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-2443"><a href="#Select-2443"><span class="linenos">2443</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2444"><a href="#Select-2444"><span class="linenos">2444</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
+</span><span id="Select-2445"><a href="#Select-2445"><span class="linenos">2445</span></a>
+</span><span id="Select-2446"><a href="#Select-2446"><span class="linenos">2446</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2447"><a href="#Select-2447"><span class="linenos">2447</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-2448"><a href="#Select-2448"><span class="linenos">2448</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</span><span id="Select-2449"><a href="#Select-2449"><span class="linenos">2449</span></a>
+</span><span id="Select-2450"><a href="#Select-2450"><span class="linenos">2450</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-2451"><a href="#Select-2451"><span class="linenos">2451</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
+</span><span id="Select-2452"><a href="#Select-2452"><span class="linenos">2452</span></a>
+</span><span id="Select-2453"><a href="#Select-2453"><span class="linenos">2453</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
+</span><span id="Select-2454"><a href="#Select-2454"><span class="linenos">2454</span></a>
+</span><span id="Select-2455"><a href="#Select-2455"><span class="linenos">2455</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-2456"><a href="#Select-2456"><span class="linenos">2456</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</span><span id="Select-2457"><a href="#Select-2457"><span class="linenos">2457</span></a>
+</span><span id="Select-2458"><a href="#Select-2458"><span class="linenos">2458</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2459"><a href="#Select-2459"><span class="linenos">2459</span></a><span class="sd"> expression (str | Expression): the SQL code string to parse.</span>
+</span><span id="Select-2460"><a href="#Select-2460"><span class="linenos">2460</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-2461"><a href="#Select-2461"><span class="linenos">2461</span></a><span class="sd"> on (str | Expression): optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
+</span><span id="Select-2462"><a href="#Select-2462"><span class="linenos">2462</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-2463"><a href="#Select-2463"><span class="linenos">2463</span></a><span class="sd"> using (str | Expression): optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
+</span><span id="Select-2464"><a href="#Select-2464"><span class="linenos">2464</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-2465"><a href="#Select-2465"><span class="linenos">2465</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Select-2466"><a href="#Select-2466"><span class="linenos">2466</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select-2467"><a href="#Select-2467"><span class="linenos">2467</span></a><span class="sd"> join_type (str): If set, alter the parsed join type</span>
+</span><span id="Select-2468"><a href="#Select-2468"><span class="linenos">2468</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="Select-2469"><a href="#Select-2469"><span class="linenos">2469</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2470"><a href="#Select-2470"><span class="linenos">2470</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select-2471"><a href="#Select-2471"><span class="linenos">2471</span></a>
+</span><span id="Select-2472"><a href="#Select-2472"><span class="linenos">2472</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2473"><a href="#Select-2473"><span class="linenos">2473</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2474"><a href="#Select-2474"><span class="linenos">2474</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2475"><a href="#Select-2475"><span class="linenos">2475</span></a> <span class="n">parse_args</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-2476"><a href="#Select-2476"><span class="linenos">2476</span></a>
+</span><span id="Select-2477"><a href="#Select-2477"><span class="linenos">2477</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="Select-2478"><a href="#Select-2478"><span class="linenos">2478</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-2479"><a href="#Select-2479"><span class="linenos">2479</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="Select-2480"><a href="#Select-2480"><span class="linenos">2480</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-2481"><a href="#Select-2481"><span class="linenos">2481</span></a>
+</span><span id="Select-2482"><a href="#Select-2482"><span class="linenos">2482</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-2483"><a href="#Select-2483"><span class="linenos">2483</span></a>
+</span><span id="Select-2484"><a href="#Select-2484"><span class="linenos">2484</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-2485"><a href="#Select-2485"><span class="linenos">2485</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-2486"><a href="#Select-2486"><span class="linenos">2486</span></a>
+</span><span id="Select-2487"><a href="#Select-2487"><span class="linenos">2487</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
+</span><span id="Select-2488"><a href="#Select-2488"><span class="linenos">2488</span></a> <span class="n">natural</span><span 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-2489"><a href="#Select-2489"><span class="linenos">2489</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-2490"><a href="#Select-2490"><span class="linenos">2490</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-2491"><a href="#Select-2491"><span class="linenos">2491</span></a>
+</span><span id="Select-2492"><a href="#Select-2492"><span class="linenos">2492</span></a> <span class="n">natural</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-2493"><a href="#Select-2493"><span class="linenos">2493</span></a>
-</span><span id="Select-2494"><a href="#Select-2494"><span class="linenos">2494</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2495"><a href="#Select-2495"><span class="linenos">2495</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2496"><a href="#Select-2496"><span class="linenos">2496</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-2497"><a href="#Select-2497"><span class="linenos">2497</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select-2498"><a href="#Select-2498"><span class="linenos">2498</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select-2499"><a href="#Select-2499"><span class="linenos">2499</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select-2500"><a href="#Select-2500"><span class="linenos">2500</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select-2501"><a href="#Select-2501"><span class="linenos">2501</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2502"><a href="#Select-2502"><span class="linenos">2502</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2503"><a href="#Select-2503"><span class="linenos">2503</span></a>
-</span><span id="Select-2504"><a href="#Select-2504"><span class="linenos">2504</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2505"><a href="#Select-2505"><span class="linenos">2505</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2506"><a href="#Select-2506"><span class="linenos">2506</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2507"><a href="#Select-2507"><span class="linenos">2507</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select-2508"><a href="#Select-2508"><span class="linenos">2508</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2509"><a href="#Select-2509"><span class="linenos">2509</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2510"><a href="#Select-2510"><span class="linenos">2510</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-2511"><a href="#Select-2511"><span class="linenos">2511</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2512"><a href="#Select-2512"><span class="linenos">2512</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="Select-2513"><a href="#Select-2513"><span class="linenos">2513</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2514"><a href="#Select-2514"><span class="linenos">2514</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2515"><a href="#Select-2515"><span class="linenos">2515</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2516"><a href="#Select-2516"><span class="linenos">2516</span></a> <span class="p">)</span>
-</span><span id="Select-2517"><a href="#Select-2517"><span class="linenos">2517</span></a>
-</span><span id="Select-2518"><a href="#Select-2518"><span class="linenos">2518</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select-2519"><a href="#Select-2519"><span class="linenos">2519</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2520"><a href="#Select-2520"><span class="linenos">2520</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
-</span><span id="Select-2521"><a href="#Select-2521"><span class="linenos">2521</span></a>
-</span><span id="Select-2522"><a href="#Select-2522"><span class="linenos">2522</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2523"><a href="#Select-2523"><span class="linenos">2523</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-2524"><a href="#Select-2524"><span class="linenos">2524</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-2494"><a href="#Select-2494"><span class="linenos">2494</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span>
+</span><span id="Select-2495"><a href="#Select-2495"><span class="linenos">2495</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;natural&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
+</span><span id="Select-2496"><a href="#Select-2496"><span class="linenos">2496</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
+</span><span id="Select-2497"><a href="#Select-2497"><span class="linenos">2497</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-2498"><a href="#Select-2498"><span class="linenos">2498</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
+</span><span id="Select-2499"><a href="#Select-2499"><span class="linenos">2499</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-2500"><a href="#Select-2500"><span class="linenos">2500</span></a>
+</span><span id="Select-2501"><a href="#Select-2501"><span class="linenos">2501</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
+</span><span id="Select-2502"><a href="#Select-2502"><span class="linenos">2502</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_collection</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="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Select-2503"><a href="#Select-2503"><span class="linenos">2503</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-2504"><a href="#Select-2504"><span class="linenos">2504</span></a>
+</span><span id="Select-2505"><a href="#Select-2505"><span class="linenos">2505</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
+</span><span id="Select-2506"><a href="#Select-2506"><span class="linenos">2506</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-2507"><a href="#Select-2507"><span class="linenos">2507</span></a> <span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
+</span><span id="Select-2508"><a href="#Select-2508"><span class="linenos">2508</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
+</span><span id="Select-2509"><a href="#Select-2509"><span class="linenos">2509</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-2510"><a href="#Select-2510"><span class="linenos">2510</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2511"><a href="#Select-2511"><span class="linenos">2511</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2512"><a href="#Select-2512"><span class="linenos">2512</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2513"><a href="#Select-2513"><span class="linenos">2513</span></a> <span class="p">)</span>
+</span><span id="Select-2514"><a href="#Select-2514"><span class="linenos">2514</span></a>
+</span><span id="Select-2515"><a href="#Select-2515"><span class="linenos">2515</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
+</span><span id="Select-2516"><a href="#Select-2516"><span class="linenos">2516</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-2517"><a href="#Select-2517"><span class="linenos">2517</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-2518"><a href="#Select-2518"><span class="linenos">2518</span></a> <span class="n">join</span><span class="p">,</span>
+</span><span id="Select-2519"><a href="#Select-2519"><span class="linenos">2519</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2520"><a href="#Select-2520"><span class="linenos">2520</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-2521"><a href="#Select-2521"><span class="linenos">2521</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2522"><a href="#Select-2522"><span class="linenos">2522</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2523"><a href="#Select-2523"><span class="linenos">2523</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2524"><a href="#Select-2524"><span class="linenos">2524</span></a> <span class="p">)</span>
</span><span id="Select-2525"><a href="#Select-2525"><span class="linenos">2525</span></a>
-</span><span id="Select-2526"><a href="#Select-2526"><span class="linenos">2526</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2527"><a href="#Select-2527"><span class="linenos">2527</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select-2528"><a href="#Select-2528"><span class="linenos">2528</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-2529"><a href="#Select-2529"><span class="linenos">2529</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select-2530"><a href="#Select-2530"><span class="linenos">2530</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select-2531"><a href="#Select-2531"><span class="linenos">2531</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select-2532"><a href="#Select-2532"><span class="linenos">2532</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select-2533"><a href="#Select-2533"><span class="linenos">2533</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2534"><a href="#Select-2534"><span class="linenos">2534</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select-2535"><a href="#Select-2535"><span class="linenos">2535</span></a>
-</span><span id="Select-2536"><a href="#Select-2536"><span class="linenos">2536</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2537"><a href="#Select-2537"><span class="linenos">2537</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2538"><a href="#Select-2538"><span class="linenos">2538</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2539"><a href="#Select-2539"><span class="linenos">2539</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select-2540"><a href="#Select-2540"><span class="linenos">2540</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2541"><a href="#Select-2541"><span class="linenos">2541</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2542"><a href="#Select-2542"><span class="linenos">2542</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-2543"><a href="#Select-2543"><span class="linenos">2543</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2544"><a href="#Select-2544"><span class="linenos">2544</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
-</span><span id="Select-2545"><a href="#Select-2545"><span class="linenos">2545</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2546"><a href="#Select-2546"><span class="linenos">2546</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2547"><a href="#Select-2547"><span class="linenos">2547</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2548"><a href="#Select-2548"><span class="linenos">2548</span></a> <span class="p">)</span>
-</span><span id="Select-2549"><a href="#Select-2549"><span class="linenos">2549</span></a>
-</span><span id="Select-2550"><a href="#Select-2550"><span class="linenos">2550</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select-2551"><a href="#Select-2551"><span class="linenos">2551</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-2552"><a href="#Select-2552"><span class="linenos">2552</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2553"><a href="#Select-2553"><span class="linenos">2553</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2554"><a href="#Select-2554"><span class="linenos">2554</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-2555"><a href="#Select-2555"><span class="linenos">2555</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2556"><a href="#Select-2556"><span class="linenos">2556</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
-</span><span id="Select-2557"><a href="#Select-2557"><span class="linenos">2557</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2558"><a href="#Select-2558"><span class="linenos">2558</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2559"><a href="#Select-2559"><span class="linenos">2559</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2560"><a href="#Select-2560"><span class="linenos">2560</span></a> <span class="p">)</span>
+</span><span id="Select-2526"><a href="#Select-2526"><span class="linenos">2526</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select-2527"><a href="#Select-2527"><span class="linenos">2527</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2528"><a href="#Select-2528"><span class="linenos">2528</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="Select-2529"><a href="#Select-2529"><span class="linenos">2529</span></a>
+</span><span id="Select-2530"><a href="#Select-2530"><span class="linenos">2530</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2531"><a href="#Select-2531"><span class="linenos">2531</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-2532"><a href="#Select-2532"><span class="linenos">2532</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-2533"><a href="#Select-2533"><span class="linenos">2533</span></a>
+</span><span id="Select-2534"><a href="#Select-2534"><span class="linenos">2534</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2535"><a href="#Select-2535"><span class="linenos">2535</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select-2536"><a href="#Select-2536"><span class="linenos">2536</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-2537"><a href="#Select-2537"><span class="linenos">2537</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select-2538"><a href="#Select-2538"><span class="linenos">2538</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select-2539"><a href="#Select-2539"><span class="linenos">2539</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select-2540"><a href="#Select-2540"><span class="linenos">2540</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="Select-2541"><a href="#Select-2541"><span class="linenos">2541</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2542"><a href="#Select-2542"><span class="linenos">2542</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select-2543"><a href="#Select-2543"><span class="linenos">2543</span></a>
+</span><span id="Select-2544"><a href="#Select-2544"><span class="linenos">2544</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2545"><a href="#Select-2545"><span class="linenos">2545</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2546"><a href="#Select-2546"><span class="linenos">2546</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2547"><a href="#Select-2547"><span class="linenos">2547</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select-2548"><a href="#Select-2548"><span class="linenos">2548</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2549"><a href="#Select-2549"><span class="linenos">2549</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2550"><a href="#Select-2550"><span class="linenos">2550</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-2551"><a href="#Select-2551"><span class="linenos">2551</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2552"><a href="#Select-2552"><span class="linenos">2552</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
+</span><span id="Select-2553"><a href="#Select-2553"><span class="linenos">2553</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2554"><a href="#Select-2554"><span class="linenos">2554</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2555"><a href="#Select-2555"><span class="linenos">2555</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2556"><a href="#Select-2556"><span class="linenos">2556</span></a> <span class="p">)</span>
+</span><span id="Select-2557"><a href="#Select-2557"><span class="linenos">2557</span></a>
+</span><span id="Select-2558"><a href="#Select-2558"><span class="linenos">2558</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select-2559"><a href="#Select-2559"><span class="linenos">2559</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2560"><a href="#Select-2560"><span class="linenos">2560</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
</span><span id="Select-2561"><a href="#Select-2561"><span class="linenos">2561</span></a>
-</span><span id="Select-2562"><a href="#Select-2562"><span class="linenos">2562</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select-2563"><a href="#Select-2563"><span class="linenos">2563</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select-2564"><a href="#Select-2564"><span class="linenos">2564</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-2565"><a href="#Select-2565"><span class="linenos">2565</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-2566"><a href="#Select-2566"><span class="linenos">2566</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-2567"><a href="#Select-2567"><span class="linenos">2567</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-2568"><a href="#Select-2568"><span class="linenos">2568</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
-</span><span id="Select-2569"><a href="#Select-2569"><span class="linenos">2569</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2570"><a href="#Select-2570"><span class="linenos">2570</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-2571"><a href="#Select-2571"><span class="linenos">2571</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2572"><a href="#Select-2572"><span class="linenos">2572</span></a> <span class="p">)</span>
-</span><span id="Select-2573"><a href="#Select-2573"><span class="linenos">2573</span></a>
-</span><span id="Select-2574"><a href="#Select-2574"><span class="linenos">2574</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</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-2575"><a href="#Select-2575"><span class="linenos">2575</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2576"><a href="#Select-2576"><span class="linenos">2576</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="Select-2577"><a href="#Select-2577"><span class="linenos">2577</span></a>
-</span><span id="Select-2578"><a href="#Select-2578"><span class="linenos">2578</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2579"><a href="#Select-2579"><span class="linenos">2579</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
-</span><span id="Select-2580"><a href="#Select-2580"><span class="linenos">2580</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
-</span><span id="Select-2581"><a href="#Select-2581"><span class="linenos">2581</span></a>
-</span><span id="Select-2582"><a href="#Select-2582"><span class="linenos">2582</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2583"><a href="#Select-2583"><span class="linenos">2583</span></a><span class="sd"> distinct (bool): whether the Select should be distinct</span>
-</span><span id="Select-2584"><a href="#Select-2584"><span class="linenos">2584</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2585"><a href="#Select-2585"><span class="linenos">2585</span></a>
-</span><span id="Select-2586"><a href="#Select-2586"><span class="linenos">2586</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2587"><a href="#Select-2587"><span class="linenos">2587</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-2588"><a href="#Select-2588"><span class="linenos">2588</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2589"><a href="#Select-2589"><span class="linenos">2589</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-2590"><a href="#Select-2590"><span class="linenos">2590</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="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-2591"><a href="#Select-2591"><span class="linenos">2591</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="Select-2592"><a href="#Select-2592"><span class="linenos">2592</span></a>
-</span><span id="Select-2593"><a href="#Select-2593"><span class="linenos">2593</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Create</span><span class="p">:</span>
-</span><span id="Select-2594"><a href="#Select-2594"><span class="linenos">2594</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2595"><a href="#Select-2595"><span class="linenos">2595</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
-</span><span id="Select-2596"><a href="#Select-2596"><span class="linenos">2596</span></a>
-</span><span id="Select-2597"><a href="#Select-2597"><span class="linenos">2597</span></a><span class="sd"> Example:</span>
-</span><span id="Select-2598"><a href="#Select-2598"><span class="linenos">2598</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-2599"><a href="#Select-2599"><span class="linenos">2599</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
-</span><span id="Select-2600"><a href="#Select-2600"><span class="linenos">2600</span></a>
-</span><span id="Select-2601"><a href="#Select-2601"><span class="linenos">2601</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2602"><a href="#Select-2602"><span class="linenos">2602</span></a><span class="sd"> table (str | Expression): the SQL code string to parse as the table name.</span>
-</span><span id="Select-2603"><a href="#Select-2603"><span class="linenos">2603</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-2604"><a href="#Select-2604"><span class="linenos">2604</span></a><span class="sd"> properties (dict): an optional mapping of table properties</span>
-</span><span id="Select-2605"><a href="#Select-2605"><span class="linenos">2605</span></a><span class="sd"> dialect (str): the dialect used to parse the input table.</span>
-</span><span id="Select-2606"><a href="#Select-2606"><span class="linenos">2606</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2607"><a href="#Select-2607"><span class="linenos">2607</span></a><span class="sd"> opts (kwargs): other options to use to parse the input table.</span>
-</span><span id="Select-2608"><a href="#Select-2608"><span class="linenos">2608</span></a>
-</span><span id="Select-2609"><a href="#Select-2609"><span class="linenos">2609</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2610"><a href="#Select-2610"><span class="linenos">2610</span></a><span class="sd"> Create: the CREATE TABLE AS expression</span>
-</span><span id="Select-2611"><a href="#Select-2611"><span class="linenos">2611</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-2612"><a href="#Select-2612"><span class="linenos">2612</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-2613"><a href="#Select-2613"><span class="linenos">2613</span></a> <span class="n">table_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="Select-2614"><a href="#Select-2614"><span class="linenos">2614</span></a> <span class="n">table</span><span class="p">,</span>
-</span><span id="Select-2615"><a href="#Select-2615"><span class="linenos">2615</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
-</span><span id="Select-2616"><a href="#Select-2616"><span class="linenos">2616</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-2617"><a href="#Select-2617"><span class="linenos">2617</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-2618"><a href="#Select-2618"><span class="linenos">2618</span></a> <span class="p">)</span>
-</span><span id="Select-2619"><a href="#Select-2619"><span class="linenos">2619</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Select-2620"><a href="#Select-2620"><span class="linenos">2620</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
-</span><span id="Select-2621"><a href="#Select-2621"><span class="linenos">2621</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-2622"><a href="#Select-2622"><span class="linenos">2622</span></a>
-</span><span id="Select-2623"><a href="#Select-2623"><span class="linenos">2623</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
-</span><span id="Select-2624"><a href="#Select-2624"><span class="linenos">2624</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-2625"><a href="#Select-2625"><span class="linenos">2625</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-2626"><a href="#Select-2626"><span class="linenos">2626</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="Select-2627"><a href="#Select-2627"><span class="linenos">2627</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-2628"><a href="#Select-2628"><span class="linenos">2628</span></a> <span class="p">)</span>
-</span><span id="Select-2629"><a href="#Select-2629"><span class="linenos">2629</span></a>
-</span><span id="Select-2630"><a href="#Select-2630"><span class="linenos">2630</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-2631"><a href="#Select-2631"><span class="linenos">2631</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-2632"><a href="#Select-2632"><span class="linenos">2632</span></a><span class="sd"> Set the locking read mode for this expression.</span>
-</span><span id="Select-2633"><a href="#Select-2633"><span class="linenos">2633</span></a>
-</span><span id="Select-2634"><a href="#Select-2634"><span class="linenos">2634</span></a><span class="sd"> Examples:</span>
-</span><span id="Select-2635"><a href="#Select-2635"><span class="linenos">2635</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-2636"><a href="#Select-2636"><span class="linenos">2636</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
-</span><span id="Select-2637"><a href="#Select-2637"><span class="linenos">2637</span></a>
-</span><span id="Select-2638"><a href="#Select-2638"><span class="linenos">2638</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-2639"><a href="#Select-2639"><span class="linenos">2639</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
+</span><span id="Select-2562"><a href="#Select-2562"><span class="linenos">2562</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2563"><a href="#Select-2563"><span class="linenos">2563</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-2564"><a href="#Select-2564"><span class="linenos">2564</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-2565"><a href="#Select-2565"><span class="linenos">2565</span></a>
+</span><span id="Select-2566"><a href="#Select-2566"><span class="linenos">2566</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2567"><a href="#Select-2567"><span class="linenos">2567</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select-2568"><a href="#Select-2568"><span class="linenos">2568</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-2569"><a href="#Select-2569"><span class="linenos">2569</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select-2570"><a href="#Select-2570"><span class="linenos">2570</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select-2571"><a href="#Select-2571"><span class="linenos">2571</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select-2572"><a href="#Select-2572"><span class="linenos">2572</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="Select-2573"><a href="#Select-2573"><span class="linenos">2573</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2574"><a href="#Select-2574"><span class="linenos">2574</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select-2575"><a href="#Select-2575"><span class="linenos">2575</span></a>
+</span><span id="Select-2576"><a href="#Select-2576"><span class="linenos">2576</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2577"><a href="#Select-2577"><span class="linenos">2577</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2578"><a href="#Select-2578"><span class="linenos">2578</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2579"><a href="#Select-2579"><span class="linenos">2579</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select-2580"><a href="#Select-2580"><span class="linenos">2580</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2581"><a href="#Select-2581"><span class="linenos">2581</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2582"><a href="#Select-2582"><span class="linenos">2582</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-2583"><a href="#Select-2583"><span class="linenos">2583</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2584"><a href="#Select-2584"><span class="linenos">2584</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
+</span><span id="Select-2585"><a href="#Select-2585"><span class="linenos">2585</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2586"><a href="#Select-2586"><span class="linenos">2586</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2587"><a href="#Select-2587"><span class="linenos">2587</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2588"><a href="#Select-2588"><span class="linenos">2588</span></a> <span class="p">)</span>
+</span><span id="Select-2589"><a href="#Select-2589"><span class="linenos">2589</span></a>
+</span><span id="Select-2590"><a href="#Select-2590"><span class="linenos">2590</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select-2591"><a href="#Select-2591"><span class="linenos">2591</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-2592"><a href="#Select-2592"><span class="linenos">2592</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2593"><a href="#Select-2593"><span class="linenos">2593</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2594"><a href="#Select-2594"><span class="linenos">2594</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-2595"><a href="#Select-2595"><span class="linenos">2595</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2596"><a href="#Select-2596"><span class="linenos">2596</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
+</span><span id="Select-2597"><a href="#Select-2597"><span class="linenos">2597</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2598"><a href="#Select-2598"><span class="linenos">2598</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2599"><a href="#Select-2599"><span class="linenos">2599</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2600"><a href="#Select-2600"><span class="linenos">2600</span></a> <span class="p">)</span>
+</span><span id="Select-2601"><a href="#Select-2601"><span class="linenos">2601</span></a>
+</span><span id="Select-2602"><a href="#Select-2602"><span class="linenos">2602</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select-2603"><a href="#Select-2603"><span class="linenos">2603</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select-2604"><a href="#Select-2604"><span class="linenos">2604</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-2605"><a href="#Select-2605"><span class="linenos">2605</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-2606"><a href="#Select-2606"><span class="linenos">2606</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-2607"><a href="#Select-2607"><span class="linenos">2607</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-2608"><a href="#Select-2608"><span class="linenos">2608</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
+</span><span id="Select-2609"><a href="#Select-2609"><span class="linenos">2609</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2610"><a href="#Select-2610"><span class="linenos">2610</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-2611"><a href="#Select-2611"><span class="linenos">2611</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2612"><a href="#Select-2612"><span class="linenos">2612</span></a> <span class="p">)</span>
+</span><span id="Select-2613"><a href="#Select-2613"><span class="linenos">2613</span></a>
+</span><span id="Select-2614"><a href="#Select-2614"><span class="linenos">2614</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</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-2615"><a href="#Select-2615"><span class="linenos">2615</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2616"><a href="#Select-2616"><span class="linenos">2616</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="Select-2617"><a href="#Select-2617"><span class="linenos">2617</span></a>
+</span><span id="Select-2618"><a href="#Select-2618"><span class="linenos">2618</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2619"><a href="#Select-2619"><span class="linenos">2619</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
+</span><span id="Select-2620"><a href="#Select-2620"><span class="linenos">2620</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
+</span><span id="Select-2621"><a href="#Select-2621"><span class="linenos">2621</span></a>
+</span><span id="Select-2622"><a href="#Select-2622"><span class="linenos">2622</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2623"><a href="#Select-2623"><span class="linenos">2623</span></a><span class="sd"> distinct (bool): whether the Select should be distinct</span>
+</span><span id="Select-2624"><a href="#Select-2624"><span class="linenos">2624</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2625"><a href="#Select-2625"><span class="linenos">2625</span></a>
+</span><span id="Select-2626"><a href="#Select-2626"><span class="linenos">2626</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2627"><a href="#Select-2627"><span class="linenos">2627</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-2628"><a href="#Select-2628"><span class="linenos">2628</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2629"><a href="#Select-2629"><span class="linenos">2629</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-2630"><a href="#Select-2630"><span class="linenos">2630</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="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-2631"><a href="#Select-2631"><span class="linenos">2631</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="Select-2632"><a href="#Select-2632"><span class="linenos">2632</span></a>
+</span><span id="Select-2633"><a href="#Select-2633"><span class="linenos">2633</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Create</span><span class="p">:</span>
+</span><span id="Select-2634"><a href="#Select-2634"><span class="linenos">2634</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2635"><a href="#Select-2635"><span class="linenos">2635</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
+</span><span id="Select-2636"><a href="#Select-2636"><span class="linenos">2636</span></a>
+</span><span id="Select-2637"><a href="#Select-2637"><span class="linenos">2637</span></a><span class="sd"> Example:</span>
+</span><span id="Select-2638"><a href="#Select-2638"><span class="linenos">2638</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-2639"><a href="#Select-2639"><span class="linenos">2639</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
</span><span id="Select-2640"><a href="#Select-2640"><span class="linenos">2640</span></a>
</span><span id="Select-2641"><a href="#Select-2641"><span class="linenos">2641</span></a><span class="sd"> Args:</span>
-</span><span id="Select-2642"><a href="#Select-2642"><span class="linenos">2642</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-2643"><a href="#Select-2643"><span class="linenos">2643</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-2644"><a href="#Select-2644"><span class="linenos">2644</span></a>
-</span><span id="Select-2645"><a href="#Select-2645"><span class="linenos">2645</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-2646"><a href="#Select-2646"><span class="linenos">2646</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Select-2647"><a href="#Select-2647"><span class="linenos">2647</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2642"><a href="#Select-2642"><span class="linenos">2642</span></a><span class="sd"> table (str | Expression): the SQL code string to parse as the table name.</span>
+</span><span id="Select-2643"><a href="#Select-2643"><span class="linenos">2643</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-2644"><a href="#Select-2644"><span class="linenos">2644</span></a><span class="sd"> properties (dict): an optional mapping of table properties</span>
+</span><span id="Select-2645"><a href="#Select-2645"><span class="linenos">2645</span></a><span class="sd"> dialect (str): the dialect used to parse the input table.</span>
+</span><span id="Select-2646"><a href="#Select-2646"><span class="linenos">2646</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2647"><a href="#Select-2647"><span class="linenos">2647</span></a><span class="sd"> opts (kwargs): other options to use to parse the input table.</span>
</span><span id="Select-2648"><a href="#Select-2648"><span class="linenos">2648</span></a>
-</span><span id="Select-2649"><a href="#Select-2649"><span class="linenos">2649</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-2650"><a href="#Select-2650"><span class="linenos">2650</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;lock&quot;</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-2651"><a href="#Select-2651"><span class="linenos">2651</span></a>
-</span><span id="Select-2652"><a href="#Select-2652"><span class="linenos">2652</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="Select-2653"><a href="#Select-2653"><span class="linenos">2653</span></a>
-</span><span id="Select-2654"><a href="#Select-2654"><span class="linenos">2654</span></a> <span class="nd">@property</span>
-</span><span id="Select-2655"><a href="#Select-2655"><span class="linenos">2655</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-2656"><a href="#Select-2656"><span class="linenos">2656</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-2657"><a href="#Select-2657"><span class="linenos">2657</span></a>
-</span><span id="Select-2658"><a href="#Select-2658"><span class="linenos">2658</span></a> <span class="nd">@property</span>
-</span><span id="Select-2659"><a href="#Select-2659"><span class="linenos">2659</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-2660"><a href="#Select-2660"><span class="linenos">2660</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-2661"><a href="#Select-2661"><span class="linenos">2661</span></a>
-</span><span id="Select-2662"><a href="#Select-2662"><span class="linenos">2662</span></a> <span class="nd">@property</span>
-</span><span id="Select-2663"><a href="#Select-2663"><span class="linenos">2663</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-2664"><a href="#Select-2664"><span class="linenos">2664</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-2649"><a href="#Select-2649"><span class="linenos">2649</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2650"><a href="#Select-2650"><span class="linenos">2650</span></a><span class="sd"> Create: the CREATE TABLE AS expression</span>
+</span><span id="Select-2651"><a href="#Select-2651"><span class="linenos">2651</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2652"><a href="#Select-2652"><span class="linenos">2652</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-2653"><a href="#Select-2653"><span class="linenos">2653</span></a> <span class="n">table_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="Select-2654"><a href="#Select-2654"><span class="linenos">2654</span></a> <span class="n">table</span><span class="p">,</span>
+</span><span id="Select-2655"><a href="#Select-2655"><span class="linenos">2655</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
+</span><span id="Select-2656"><a href="#Select-2656"><span class="linenos">2656</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-2657"><a href="#Select-2657"><span class="linenos">2657</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-2658"><a href="#Select-2658"><span class="linenos">2658</span></a> <span class="p">)</span>
+</span><span id="Select-2659"><a href="#Select-2659"><span class="linenos">2659</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Select-2660"><a href="#Select-2660"><span class="linenos">2660</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
+</span><span id="Select-2661"><a href="#Select-2661"><span class="linenos">2661</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-2662"><a href="#Select-2662"><span class="linenos">2662</span></a>
+</span><span id="Select-2663"><a href="#Select-2663"><span class="linenos">2663</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
+</span><span id="Select-2664"><a href="#Select-2664"><span class="linenos">2664</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-2665"><a href="#Select-2665"><span class="linenos">2665</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-2666"><a href="#Select-2666"><span class="linenos">2666</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="Select-2667"><a href="#Select-2667"><span class="linenos">2667</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-2668"><a href="#Select-2668"><span class="linenos">2668</span></a> <span class="p">)</span>
+</span><span id="Select-2669"><a href="#Select-2669"><span class="linenos">2669</span></a>
+</span><span id="Select-2670"><a href="#Select-2670"><span class="linenos">2670</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-2671"><a href="#Select-2671"><span class="linenos">2671</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-2672"><a href="#Select-2672"><span class="linenos">2672</span></a><span class="sd"> Set the locking read mode for this expression.</span>
+</span><span id="Select-2673"><a href="#Select-2673"><span class="linenos">2673</span></a>
+</span><span id="Select-2674"><a href="#Select-2674"><span class="linenos">2674</span></a><span class="sd"> Examples:</span>
+</span><span id="Select-2675"><a href="#Select-2675"><span class="linenos">2675</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-2676"><a href="#Select-2676"><span class="linenos">2676</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
+</span><span id="Select-2677"><a href="#Select-2677"><span class="linenos">2677</span></a>
+</span><span id="Select-2678"><a href="#Select-2678"><span class="linenos">2678</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-2679"><a href="#Select-2679"><span class="linenos">2679</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
+</span><span id="Select-2680"><a href="#Select-2680"><span class="linenos">2680</span></a>
+</span><span id="Select-2681"><a href="#Select-2681"><span class="linenos">2681</span></a><span class="sd"> Args:</span>
+</span><span id="Select-2682"><a href="#Select-2682"><span class="linenos">2682</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-2683"><a href="#Select-2683"><span class="linenos">2683</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-2684"><a href="#Select-2684"><span class="linenos">2684</span></a>
+</span><span id="Select-2685"><a href="#Select-2685"><span class="linenos">2685</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-2686"><a href="#Select-2686"><span class="linenos">2686</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Select-2687"><a href="#Select-2687"><span class="linenos">2687</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-2688"><a href="#Select-2688"><span class="linenos">2688</span></a>
+</span><span id="Select-2689"><a href="#Select-2689"><span class="linenos">2689</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-2690"><a href="#Select-2690"><span class="linenos">2690</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;lock&quot;</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-2691"><a href="#Select-2691"><span class="linenos">2691</span></a>
+</span><span id="Select-2692"><a href="#Select-2692"><span class="linenos">2692</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="Select-2693"><a href="#Select-2693"><span class="linenos">2693</span></a>
+</span><span id="Select-2694"><a href="#Select-2694"><span class="linenos">2694</span></a> <span class="nd">@property</span>
+</span><span id="Select-2695"><a href="#Select-2695"><span class="linenos">2695</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-2696"><a href="#Select-2696"><span class="linenos">2696</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-2697"><a href="#Select-2697"><span class="linenos">2697</span></a>
+</span><span id="Select-2698"><a href="#Select-2698"><span class="linenos">2698</span></a> <span class="nd">@property</span>
+</span><span id="Select-2699"><a href="#Select-2699"><span class="linenos">2699</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-2700"><a href="#Select-2700"><span class="linenos">2700</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-2701"><a href="#Select-2701"><span class="linenos">2701</span></a>
+</span><span id="Select-2702"><a href="#Select-2702"><span class="linenos">2702</span></a> <span class="nd">@property</span>
+</span><span id="Select-2703"><a href="#Select-2703"><span class="linenos">2703</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-2704"><a href="#Select-2704"><span class="linenos">2704</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -22347,38 +22844,38 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Select.from_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.from_-2092"><a href="#Select.from_-2092"><span class="linenos">2092</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select.from_-2093"><a href="#Select.from_-2093"><span class="linenos">2093</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.from_-2094"><a href="#Select.from_-2094"><span class="linenos">2094</span></a><span class="sd"> Set the FROM expression.</span>
-</span><span id="Select.from_-2095"><a href="#Select.from_-2095"><span class="linenos">2095</span></a>
-</span><span id="Select.from_-2096"><a href="#Select.from_-2096"><span class="linenos">2096</span></a><span class="sd"> Example:</span>
-</span><span id="Select.from_-2097"><a href="#Select.from_-2097"><span class="linenos">2097</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
-</span><span id="Select.from_-2098"><a href="#Select.from_-2098"><span class="linenos">2098</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
-</span><span id="Select.from_-2099"><a href="#Select.from_-2099"><span class="linenos">2099</span></a>
-</span><span id="Select.from_-2100"><a href="#Select.from_-2100"><span class="linenos">2100</span></a><span class="sd"> Args:</span>
-</span><span id="Select.from_-2101"><a href="#Select.from_-2101"><span class="linenos">2101</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.from_-2102"><a href="#Select.from_-2102"><span class="linenos">2102</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
-</span><span id="Select.from_-2103"><a href="#Select.from_-2103"><span class="linenos">2103</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
-</span><span id="Select.from_-2104"><a href="#Select.from_-2104"><span class="linenos">2104</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select.from_-2105"><a href="#Select.from_-2105"><span class="linenos">2105</span></a><span class="sd"> Otherwise, this flattens all the `From` expression into a single expression.</span>
-</span><span id="Select.from_-2106"><a href="#Select.from_-2106"><span class="linenos">2106</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select.from_-2107"><a href="#Select.from_-2107"><span class="linenos">2107</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.from_-2108"><a href="#Select.from_-2108"><span class="linenos">2108</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.from_-2109"><a href="#Select.from_-2109"><span class="linenos">2109</span></a>
-</span><span id="Select.from_-2110"><a href="#Select.from_-2110"><span class="linenos">2110</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.from_-2111"><a href="#Select.from_-2111"><span class="linenos">2111</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.from_-2112"><a href="#Select.from_-2112"><span class="linenos">2112</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.from_-2113"><a href="#Select.from_-2113"><span class="linenos">2113</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select.from_-2114"><a href="#Select.from_-2114"><span class="linenos">2114</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.from_-2115"><a href="#Select.from_-2115"><span class="linenos">2115</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_-2116"><a href="#Select.from_-2116"><span class="linenos">2116</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_-2117"><a href="#Select.from_-2117"><span class="linenos">2117</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select.from_-2118"><a href="#Select.from_-2118"><span class="linenos">2118</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_-2119"><a href="#Select.from_-2119"><span class="linenos">2119</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_-2120"><a href="#Select.from_-2120"><span class="linenos">2120</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_-2121"><a href="#Select.from_-2121"><span class="linenos">2121</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_-2122"><a href="#Select.from_-2122"><span class="linenos">2122</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.from_-2123"><a href="#Select.from_-2123"><span class="linenos">2123</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.from_-2132"><a href="#Select.from_-2132"><span class="linenos">2132</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select.from_-2133"><a href="#Select.from_-2133"><span class="linenos">2133</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.from_-2134"><a href="#Select.from_-2134"><span class="linenos">2134</span></a><span class="sd"> Set the FROM expression.</span>
+</span><span id="Select.from_-2135"><a href="#Select.from_-2135"><span class="linenos">2135</span></a>
+</span><span id="Select.from_-2136"><a href="#Select.from_-2136"><span class="linenos">2136</span></a><span class="sd"> Example:</span>
+</span><span id="Select.from_-2137"><a href="#Select.from_-2137"><span class="linenos">2137</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
+</span><span id="Select.from_-2138"><a href="#Select.from_-2138"><span class="linenos">2138</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
+</span><span id="Select.from_-2139"><a href="#Select.from_-2139"><span class="linenos">2139</span></a>
+</span><span id="Select.from_-2140"><a href="#Select.from_-2140"><span class="linenos">2140</span></a><span class="sd"> Args:</span>
+</span><span id="Select.from_-2141"><a href="#Select.from_-2141"><span class="linenos">2141</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select.from_-2142"><a href="#Select.from_-2142"><span class="linenos">2142</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
+</span><span id="Select.from_-2143"><a href="#Select.from_-2143"><span class="linenos">2143</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
+</span><span id="Select.from_-2144"><a href="#Select.from_-2144"><span class="linenos">2144</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Select.from_-2145"><a href="#Select.from_-2145"><span class="linenos">2145</span></a><span class="sd"> Otherwise, this flattens all the `From` expression into a single expression.</span>
+</span><span id="Select.from_-2146"><a href="#Select.from_-2146"><span class="linenos">2146</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Select.from_-2147"><a href="#Select.from_-2147"><span class="linenos">2147</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.from_-2148"><a href="#Select.from_-2148"><span class="linenos">2148</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select.from_-2149"><a href="#Select.from_-2149"><span class="linenos">2149</span></a>
+</span><span id="Select.from_-2150"><a href="#Select.from_-2150"><span class="linenos">2150</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.from_-2151"><a href="#Select.from_-2151"><span class="linenos">2151</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.from_-2152"><a href="#Select.from_-2152"><span class="linenos">2152</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.from_-2153"><a href="#Select.from_-2153"><span class="linenos">2153</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select.from_-2154"><a href="#Select.from_-2154"><span class="linenos">2154</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.from_-2155"><a href="#Select.from_-2155"><span class="linenos">2155</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_-2156"><a href="#Select.from_-2156"><span class="linenos">2156</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_-2157"><a href="#Select.from_-2157"><span class="linenos">2157</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select.from_-2158"><a href="#Select.from_-2158"><span class="linenos">2158</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_-2159"><a href="#Select.from_-2159"><span class="linenos">2159</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_-2160"><a href="#Select.from_-2160"><span class="linenos">2160</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_-2161"><a href="#Select.from_-2161"><span class="linenos">2161</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_-2162"><a href="#Select.from_-2162"><span class="linenos">2162</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.from_-2163"><a href="#Select.from_-2163"><span class="linenos">2163</span></a> <span class="p">)</span>
</span></pre></div>
@@ -22427,41 +22924,41 @@ Otherwise, this flattens all the <code><a href="#From">From</a></code> expressio
</div>
<a class="headerlink" href="#Select.group_by"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.group_by-2125"><a href="#Select.group_by-2125"><span class="linenos">2125</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select.group_by-2126"><a href="#Select.group_by-2126"><span class="linenos">2126</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.group_by-2127"><a href="#Select.group_by-2127"><span class="linenos">2127</span></a><span class="sd"> Set the GROUP BY expression.</span>
-</span><span id="Select.group_by-2128"><a href="#Select.group_by-2128"><span class="linenos">2128</span></a>
-</span><span id="Select.group_by-2129"><a href="#Select.group_by-2129"><span class="linenos">2129</span></a><span class="sd"> Example:</span>
-</span><span id="Select.group_by-2130"><a href="#Select.group_by-2130"><span class="linenos">2130</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-2131"><a href="#Select.group_by-2131"><span class="linenos">2131</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
-</span><span id="Select.group_by-2132"><a href="#Select.group_by-2132"><span class="linenos">2132</span></a>
-</span><span id="Select.group_by-2133"><a href="#Select.group_by-2133"><span class="linenos">2133</span></a><span class="sd"> Args:</span>
-</span><span id="Select.group_by-2134"><a href="#Select.group_by-2134"><span class="linenos">2134</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.group_by-2135"><a href="#Select.group_by-2135"><span class="linenos">2135</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select.group_by-2136"><a href="#Select.group_by-2136"><span class="linenos">2136</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-2137"><a href="#Select.group_by-2137"><span class="linenos">2137</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-2138"><a href="#Select.group_by-2138"><span class="linenos">2138</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select.group_by-2139"><a href="#Select.group_by-2139"><span class="linenos">2139</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
-</span><span id="Select.group_by-2140"><a href="#Select.group_by-2140"><span class="linenos">2140</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select.group_by-2141"><a href="#Select.group_by-2141"><span class="linenos">2141</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.group_by-2142"><a href="#Select.group_by-2142"><span class="linenos">2142</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.group_by-2143"><a href="#Select.group_by-2143"><span class="linenos">2143</span></a>
-</span><span id="Select.group_by-2144"><a href="#Select.group_by-2144"><span class="linenos">2144</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.group_by-2145"><a href="#Select.group_by-2145"><span class="linenos">2145</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.group_by-2146"><a href="#Select.group_by-2146"><span class="linenos">2146</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.group_by-2147"><a href="#Select.group_by-2147"><span class="linenos">2147</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-2148"><a href="#Select.group_by-2148"><span class="linenos">2148</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-2149"><a href="#Select.group_by-2149"><span class="linenos">2149</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-2150"><a href="#Select.group_by-2150"><span class="linenos">2150</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.group_by-2151"><a href="#Select.group_by-2151"><span class="linenos">2151</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-2152"><a href="#Select.group_by-2152"><span class="linenos">2152</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-2153"><a href="#Select.group_by-2153"><span class="linenos">2153</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-2154"><a href="#Select.group_by-2154"><span class="linenos">2154</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-2155"><a href="#Select.group_by-2155"><span class="linenos">2155</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-2156"><a href="#Select.group_by-2156"><span class="linenos">2156</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-2157"><a href="#Select.group_by-2157"><span class="linenos">2157</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-2158"><a href="#Select.group_by-2158"><span class="linenos">2158</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.group_by-2159"><a href="#Select.group_by-2159"><span class="linenos">2159</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.group_by-2165"><a href="#Select.group_by-2165"><span class="linenos">2165</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select.group_by-2166"><a href="#Select.group_by-2166"><span class="linenos">2166</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.group_by-2167"><a href="#Select.group_by-2167"><span class="linenos">2167</span></a><span class="sd"> Set the GROUP BY expression.</span>
+</span><span id="Select.group_by-2168"><a href="#Select.group_by-2168"><span class="linenos">2168</span></a>
+</span><span id="Select.group_by-2169"><a href="#Select.group_by-2169"><span class="linenos">2169</span></a><span class="sd"> Example:</span>
+</span><span id="Select.group_by-2170"><a href="#Select.group_by-2170"><span class="linenos">2170</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-2171"><a href="#Select.group_by-2171"><span class="linenos">2171</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
+</span><span id="Select.group_by-2172"><a href="#Select.group_by-2172"><span class="linenos">2172</span></a>
+</span><span id="Select.group_by-2173"><a href="#Select.group_by-2173"><span class="linenos">2173</span></a><span class="sd"> Args:</span>
+</span><span id="Select.group_by-2174"><a href="#Select.group_by-2174"><span class="linenos">2174</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select.group_by-2175"><a href="#Select.group_by-2175"><span class="linenos">2175</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select.group_by-2176"><a href="#Select.group_by-2176"><span class="linenos">2176</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-2177"><a href="#Select.group_by-2177"><span class="linenos">2177</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-2178"><a href="#Select.group_by-2178"><span class="linenos">2178</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Select.group_by-2179"><a href="#Select.group_by-2179"><span class="linenos">2179</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
+</span><span id="Select.group_by-2180"><a href="#Select.group_by-2180"><span class="linenos">2180</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Select.group_by-2181"><a href="#Select.group_by-2181"><span class="linenos">2181</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.group_by-2182"><a href="#Select.group_by-2182"><span class="linenos">2182</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select.group_by-2183"><a href="#Select.group_by-2183"><span class="linenos">2183</span></a>
+</span><span id="Select.group_by-2184"><a href="#Select.group_by-2184"><span class="linenos">2184</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.group_by-2185"><a href="#Select.group_by-2185"><span class="linenos">2185</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.group_by-2186"><a href="#Select.group_by-2186"><span class="linenos">2186</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.group_by-2187"><a href="#Select.group_by-2187"><span class="linenos">2187</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-2188"><a href="#Select.group_by-2188"><span class="linenos">2188</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-2189"><a href="#Select.group_by-2189"><span class="linenos">2189</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-2190"><a href="#Select.group_by-2190"><span class="linenos">2190</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.group_by-2191"><a href="#Select.group_by-2191"><span class="linenos">2191</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-2192"><a href="#Select.group_by-2192"><span class="linenos">2192</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-2193"><a href="#Select.group_by-2193"><span class="linenos">2193</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-2194"><a href="#Select.group_by-2194"><span class="linenos">2194</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-2195"><a href="#Select.group_by-2195"><span class="linenos">2195</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-2196"><a href="#Select.group_by-2196"><span class="linenos">2196</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-2197"><a href="#Select.group_by-2197"><span class="linenos">2197</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-2198"><a href="#Select.group_by-2198"><span class="linenos">2198</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.group_by-2199"><a href="#Select.group_by-2199"><span class="linenos">2199</span></a> <span class="p">)</span>
</span></pre></div>
@@ -22511,38 +23008,38 @@ Otherwise, this flattens all the <code><a href="#Group">Group</a></code> express
</div>
<a class="headerlink" href="#Select.order_by"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.order_by-2161"><a href="#Select.order_by-2161"><span class="linenos">2161</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select.order_by-2162"><a href="#Select.order_by-2162"><span class="linenos">2162</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.order_by-2163"><a href="#Select.order_by-2163"><span class="linenos">2163</span></a><span class="sd"> Set the ORDER BY expression.</span>
-</span><span id="Select.order_by-2164"><a href="#Select.order_by-2164"><span class="linenos">2164</span></a>
-</span><span id="Select.order_by-2165"><a href="#Select.order_by-2165"><span class="linenos">2165</span></a><span class="sd"> Example:</span>
-</span><span id="Select.order_by-2166"><a href="#Select.order_by-2166"><span class="linenos">2166</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).order_by(&quot;x DESC&quot;).sql()</span>
-</span><span id="Select.order_by-2167"><a href="#Select.order_by-2167"><span class="linenos">2167</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
-</span><span id="Select.order_by-2168"><a href="#Select.order_by-2168"><span class="linenos">2168</span></a>
-</span><span id="Select.order_by-2169"><a href="#Select.order_by-2169"><span class="linenos">2169</span></a><span class="sd"> Args:</span>
-</span><span id="Select.order_by-2170"><a href="#Select.order_by-2170"><span class="linenos">2170</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.order_by-2171"><a href="#Select.order_by-2171"><span class="linenos">2171</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select.order_by-2172"><a href="#Select.order_by-2172"><span class="linenos">2172</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
-</span><span id="Select.order_by-2173"><a href="#Select.order_by-2173"><span class="linenos">2173</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select.order_by-2174"><a href="#Select.order_by-2174"><span class="linenos">2174</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select.order_by-2175"><a href="#Select.order_by-2175"><span class="linenos">2175</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select.order_by-2176"><a href="#Select.order_by-2176"><span class="linenos">2176</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.order_by-2177"><a href="#Select.order_by-2177"><span class="linenos">2177</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.order_by-2178"><a href="#Select.order_by-2178"><span class="linenos">2178</span></a>
-</span><span id="Select.order_by-2179"><a href="#Select.order_by-2179"><span class="linenos">2179</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.order_by-2180"><a href="#Select.order_by-2180"><span class="linenos">2180</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.order_by-2181"><a href="#Select.order_by-2181"><span class="linenos">2181</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.order_by-2182"><a href="#Select.order_by-2182"><span class="linenos">2182</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select.order_by-2183"><a href="#Select.order_by-2183"><span class="linenos">2183</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.order_by-2184"><a href="#Select.order_by-2184"><span class="linenos">2184</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.order_by-2185"><a href="#Select.order_by-2185"><span class="linenos">2185</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;order&quot;</span><span class="p">,</span>
-</span><span id="Select.order_by-2186"><a href="#Select.order_by-2186"><span class="linenos">2186</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select.order_by-2187"><a href="#Select.order_by-2187"><span class="linenos">2187</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.order_by-2188"><a href="#Select.order_by-2188"><span class="linenos">2188</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;ORDER BY&quot;</span><span class="p">,</span>
-</span><span id="Select.order_by-2189"><a href="#Select.order_by-2189"><span class="linenos">2189</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
-</span><span id="Select.order_by-2190"><a href="#Select.order_by-2190"><span class="linenos">2190</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.order_by-2191"><a href="#Select.order_by-2191"><span class="linenos">2191</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.order_by-2192"><a href="#Select.order_by-2192"><span class="linenos">2192</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.order_by-2201"><a href="#Select.order_by-2201"><span class="linenos">2201</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select.order_by-2202"><a href="#Select.order_by-2202"><span class="linenos">2202</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.order_by-2203"><a href="#Select.order_by-2203"><span class="linenos">2203</span></a><span class="sd"> Set the ORDER BY expression.</span>
+</span><span id="Select.order_by-2204"><a href="#Select.order_by-2204"><span class="linenos">2204</span></a>
+</span><span id="Select.order_by-2205"><a href="#Select.order_by-2205"><span class="linenos">2205</span></a><span class="sd"> Example:</span>
+</span><span id="Select.order_by-2206"><a href="#Select.order_by-2206"><span class="linenos">2206</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).order_by(&quot;x DESC&quot;).sql()</span>
+</span><span id="Select.order_by-2207"><a href="#Select.order_by-2207"><span class="linenos">2207</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
+</span><span id="Select.order_by-2208"><a href="#Select.order_by-2208"><span class="linenos">2208</span></a>
+</span><span id="Select.order_by-2209"><a href="#Select.order_by-2209"><span class="linenos">2209</span></a><span class="sd"> Args:</span>
+</span><span id="Select.order_by-2210"><a href="#Select.order_by-2210"><span class="linenos">2210</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select.order_by-2211"><a href="#Select.order_by-2211"><span class="linenos">2211</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select.order_by-2212"><a href="#Select.order_by-2212"><span class="linenos">2212</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
+</span><span id="Select.order_by-2213"><a href="#Select.order_by-2213"><span class="linenos">2213</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Select.order_by-2214"><a href="#Select.order_by-2214"><span class="linenos">2214</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select.order_by-2215"><a href="#Select.order_by-2215"><span class="linenos">2215</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Select.order_by-2216"><a href="#Select.order_by-2216"><span class="linenos">2216</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.order_by-2217"><a href="#Select.order_by-2217"><span class="linenos">2217</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select.order_by-2218"><a href="#Select.order_by-2218"><span class="linenos">2218</span></a>
+</span><span id="Select.order_by-2219"><a href="#Select.order_by-2219"><span class="linenos">2219</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.order_by-2220"><a href="#Select.order_by-2220"><span class="linenos">2220</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.order_by-2221"><a href="#Select.order_by-2221"><span class="linenos">2221</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.order_by-2222"><a href="#Select.order_by-2222"><span class="linenos">2222</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select.order_by-2223"><a href="#Select.order_by-2223"><span class="linenos">2223</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.order_by-2224"><a href="#Select.order_by-2224"><span class="linenos">2224</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.order_by-2225"><a href="#Select.order_by-2225"><span class="linenos">2225</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;order&quot;</span><span class="p">,</span>
+</span><span id="Select.order_by-2226"><a href="#Select.order_by-2226"><span class="linenos">2226</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select.order_by-2227"><a href="#Select.order_by-2227"><span class="linenos">2227</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.order_by-2228"><a href="#Select.order_by-2228"><span class="linenos">2228</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;ORDER BY&quot;</span><span class="p">,</span>
+</span><span id="Select.order_by-2229"><a href="#Select.order_by-2229"><span class="linenos">2229</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
+</span><span id="Select.order_by-2230"><a href="#Select.order_by-2230"><span class="linenos">2230</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select.order_by-2231"><a href="#Select.order_by-2231"><span class="linenos">2231</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.order_by-2232"><a href="#Select.order_by-2232"><span class="linenos">2232</span></a> <span class="p">)</span>
</span></pre></div>
@@ -22591,38 +23088,38 @@ Otherwise, this flattens all the <code><a href="#Order">Order</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-2194"><a href="#Select.sort_by-2194"><span class="linenos">2194</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select.sort_by-2195"><a href="#Select.sort_by-2195"><span class="linenos">2195</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.sort_by-2196"><a href="#Select.sort_by-2196"><span class="linenos">2196</span></a><span class="sd"> Set the SORT BY expression.</span>
-</span><span id="Select.sort_by-2197"><a href="#Select.sort_by-2197"><span class="linenos">2197</span></a>
-</span><span id="Select.sort_by-2198"><a href="#Select.sort_by-2198"><span class="linenos">2198</span></a><span class="sd"> Example:</span>
-</span><span id="Select.sort_by-2199"><a href="#Select.sort_by-2199"><span class="linenos">2199</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql()</span>
-</span><span id="Select.sort_by-2200"><a href="#Select.sort_by-2200"><span class="linenos">2200</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
-</span><span id="Select.sort_by-2201"><a href="#Select.sort_by-2201"><span class="linenos">2201</span></a>
-</span><span id="Select.sort_by-2202"><a href="#Select.sort_by-2202"><span class="linenos">2202</span></a><span class="sd"> Args:</span>
-</span><span id="Select.sort_by-2203"><a href="#Select.sort_by-2203"><span class="linenos">2203</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.sort_by-2204"><a href="#Select.sort_by-2204"><span class="linenos">2204</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select.sort_by-2205"><a href="#Select.sort_by-2205"><span class="linenos">2205</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-2206"><a href="#Select.sort_by-2206"><span class="linenos">2206</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select.sort_by-2207"><a href="#Select.sort_by-2207"><span class="linenos">2207</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select.sort_by-2208"><a href="#Select.sort_by-2208"><span class="linenos">2208</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select.sort_by-2209"><a href="#Select.sort_by-2209"><span class="linenos">2209</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.sort_by-2210"><a href="#Select.sort_by-2210"><span class="linenos">2210</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.sort_by-2211"><a href="#Select.sort_by-2211"><span class="linenos">2211</span></a>
-</span><span id="Select.sort_by-2212"><a href="#Select.sort_by-2212"><span class="linenos">2212</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.sort_by-2213"><a href="#Select.sort_by-2213"><span class="linenos">2213</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.sort_by-2214"><a href="#Select.sort_by-2214"><span class="linenos">2214</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.sort_by-2215"><a href="#Select.sort_by-2215"><span class="linenos">2215</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-2216"><a href="#Select.sort_by-2216"><span class="linenos">2216</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.sort_by-2217"><a href="#Select.sort_by-2217"><span class="linenos">2217</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-2218"><a href="#Select.sort_by-2218"><span class="linenos">2218</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-2219"><a href="#Select.sort_by-2219"><span class="linenos">2219</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-2220"><a href="#Select.sort_by-2220"><span class="linenos">2220</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-2221"><a href="#Select.sort_by-2221"><span class="linenos">2221</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-2222"><a href="#Select.sort_by-2222"><span class="linenos">2222</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-2223"><a href="#Select.sort_by-2223"><span class="linenos">2223</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-2224"><a href="#Select.sort_by-2224"><span class="linenos">2224</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.sort_by-2225"><a href="#Select.sort_by-2225"><span class="linenos">2225</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.sort_by-2234"><a href="#Select.sort_by-2234"><span class="linenos">2234</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select.sort_by-2235"><a href="#Select.sort_by-2235"><span class="linenos">2235</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.sort_by-2236"><a href="#Select.sort_by-2236"><span class="linenos">2236</span></a><span class="sd"> Set the SORT BY expression.</span>
+</span><span id="Select.sort_by-2237"><a href="#Select.sort_by-2237"><span class="linenos">2237</span></a>
+</span><span id="Select.sort_by-2238"><a href="#Select.sort_by-2238"><span class="linenos">2238</span></a><span class="sd"> Example:</span>
+</span><span id="Select.sort_by-2239"><a href="#Select.sort_by-2239"><span class="linenos">2239</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql()</span>
+</span><span id="Select.sort_by-2240"><a href="#Select.sort_by-2240"><span class="linenos">2240</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
+</span><span id="Select.sort_by-2241"><a href="#Select.sort_by-2241"><span class="linenos">2241</span></a>
+</span><span id="Select.sort_by-2242"><a href="#Select.sort_by-2242"><span class="linenos">2242</span></a><span class="sd"> Args:</span>
+</span><span id="Select.sort_by-2243"><a href="#Select.sort_by-2243"><span class="linenos">2243</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select.sort_by-2244"><a href="#Select.sort_by-2244"><span class="linenos">2244</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select.sort_by-2245"><a href="#Select.sort_by-2245"><span class="linenos">2245</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-2246"><a href="#Select.sort_by-2246"><span class="linenos">2246</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Select.sort_by-2247"><a href="#Select.sort_by-2247"><span class="linenos">2247</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select.sort_by-2248"><a href="#Select.sort_by-2248"><span class="linenos">2248</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Select.sort_by-2249"><a href="#Select.sort_by-2249"><span class="linenos">2249</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.sort_by-2250"><a href="#Select.sort_by-2250"><span class="linenos">2250</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select.sort_by-2251"><a href="#Select.sort_by-2251"><span class="linenos">2251</span></a>
+</span><span id="Select.sort_by-2252"><a href="#Select.sort_by-2252"><span class="linenos">2252</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.sort_by-2253"><a href="#Select.sort_by-2253"><span class="linenos">2253</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.sort_by-2254"><a href="#Select.sort_by-2254"><span class="linenos">2254</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.sort_by-2255"><a href="#Select.sort_by-2255"><span class="linenos">2255</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-2256"><a href="#Select.sort_by-2256"><span class="linenos">2256</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.sort_by-2257"><a href="#Select.sort_by-2257"><span class="linenos">2257</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-2258"><a href="#Select.sort_by-2258"><span class="linenos">2258</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-2259"><a href="#Select.sort_by-2259"><span class="linenos">2259</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-2260"><a href="#Select.sort_by-2260"><span class="linenos">2260</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-2261"><a href="#Select.sort_by-2261"><span class="linenos">2261</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-2262"><a href="#Select.sort_by-2262"><span class="linenos">2262</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-2263"><a href="#Select.sort_by-2263"><span class="linenos">2263</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-2264"><a href="#Select.sort_by-2264"><span class="linenos">2264</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.sort_by-2265"><a href="#Select.sort_by-2265"><span class="linenos">2265</span></a> <span class="p">)</span>
</span></pre></div>
@@ -22671,38 +23168,38 @@ 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-2227"><a href="#Select.cluster_by-2227"><span class="linenos">2227</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select.cluster_by-2228"><a href="#Select.cluster_by-2228"><span class="linenos">2228</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.cluster_by-2229"><a href="#Select.cluster_by-2229"><span class="linenos">2229</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
-</span><span id="Select.cluster_by-2230"><a href="#Select.cluster_by-2230"><span class="linenos">2230</span></a>
-</span><span id="Select.cluster_by-2231"><a href="#Select.cluster_by-2231"><span class="linenos">2231</span></a><span class="sd"> Example:</span>
-</span><span id="Select.cluster_by-2232"><a href="#Select.cluster_by-2232"><span class="linenos">2232</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql()</span>
-</span><span id="Select.cluster_by-2233"><a href="#Select.cluster_by-2233"><span class="linenos">2233</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
-</span><span id="Select.cluster_by-2234"><a href="#Select.cluster_by-2234"><span class="linenos">2234</span></a>
-</span><span id="Select.cluster_by-2235"><a href="#Select.cluster_by-2235"><span class="linenos">2235</span></a><span class="sd"> Args:</span>
-</span><span id="Select.cluster_by-2236"><a href="#Select.cluster_by-2236"><span class="linenos">2236</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.cluster_by-2237"><a href="#Select.cluster_by-2237"><span class="linenos">2237</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select.cluster_by-2238"><a href="#Select.cluster_by-2238"><span class="linenos">2238</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-2239"><a href="#Select.cluster_by-2239"><span class="linenos">2239</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select.cluster_by-2240"><a href="#Select.cluster_by-2240"><span class="linenos">2240</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select.cluster_by-2241"><a href="#Select.cluster_by-2241"><span class="linenos">2241</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select.cluster_by-2242"><a href="#Select.cluster_by-2242"><span class="linenos">2242</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.cluster_by-2243"><a href="#Select.cluster_by-2243"><span class="linenos">2243</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.cluster_by-2244"><a href="#Select.cluster_by-2244"><span class="linenos">2244</span></a>
-</span><span id="Select.cluster_by-2245"><a href="#Select.cluster_by-2245"><span class="linenos">2245</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.cluster_by-2246"><a href="#Select.cluster_by-2246"><span class="linenos">2246</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.cluster_by-2247"><a href="#Select.cluster_by-2247"><span class="linenos">2247</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.cluster_by-2248"><a href="#Select.cluster_by-2248"><span class="linenos">2248</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-2249"><a href="#Select.cluster_by-2249"><span class="linenos">2249</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.cluster_by-2250"><a href="#Select.cluster_by-2250"><span class="linenos">2250</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-2251"><a href="#Select.cluster_by-2251"><span class="linenos">2251</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-2252"><a href="#Select.cluster_by-2252"><span class="linenos">2252</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-2253"><a href="#Select.cluster_by-2253"><span class="linenos">2253</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-2254"><a href="#Select.cluster_by-2254"><span class="linenos">2254</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-2255"><a href="#Select.cluster_by-2255"><span class="linenos">2255</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-2256"><a href="#Select.cluster_by-2256"><span class="linenos">2256</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-2257"><a href="#Select.cluster_by-2257"><span class="linenos">2257</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.cluster_by-2258"><a href="#Select.cluster_by-2258"><span class="linenos">2258</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.cluster_by-2267"><a href="#Select.cluster_by-2267"><span class="linenos">2267</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select.cluster_by-2268"><a href="#Select.cluster_by-2268"><span class="linenos">2268</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.cluster_by-2269"><a href="#Select.cluster_by-2269"><span class="linenos">2269</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
+</span><span id="Select.cluster_by-2270"><a href="#Select.cluster_by-2270"><span class="linenos">2270</span></a>
+</span><span id="Select.cluster_by-2271"><a href="#Select.cluster_by-2271"><span class="linenos">2271</span></a><span class="sd"> Example:</span>
+</span><span id="Select.cluster_by-2272"><a href="#Select.cluster_by-2272"><span class="linenos">2272</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql()</span>
+</span><span id="Select.cluster_by-2273"><a href="#Select.cluster_by-2273"><span class="linenos">2273</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
+</span><span id="Select.cluster_by-2274"><a href="#Select.cluster_by-2274"><span class="linenos">2274</span></a>
+</span><span id="Select.cluster_by-2275"><a href="#Select.cluster_by-2275"><span class="linenos">2275</span></a><span class="sd"> Args:</span>
+</span><span id="Select.cluster_by-2276"><a href="#Select.cluster_by-2276"><span class="linenos">2276</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select.cluster_by-2277"><a href="#Select.cluster_by-2277"><span class="linenos">2277</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select.cluster_by-2278"><a href="#Select.cluster_by-2278"><span class="linenos">2278</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-2279"><a href="#Select.cluster_by-2279"><span class="linenos">2279</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Select.cluster_by-2280"><a href="#Select.cluster_by-2280"><span class="linenos">2280</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select.cluster_by-2281"><a href="#Select.cluster_by-2281"><span class="linenos">2281</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Select.cluster_by-2282"><a href="#Select.cluster_by-2282"><span class="linenos">2282</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.cluster_by-2283"><a href="#Select.cluster_by-2283"><span class="linenos">2283</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select.cluster_by-2284"><a href="#Select.cluster_by-2284"><span class="linenos">2284</span></a>
+</span><span id="Select.cluster_by-2285"><a href="#Select.cluster_by-2285"><span class="linenos">2285</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.cluster_by-2286"><a href="#Select.cluster_by-2286"><span class="linenos">2286</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.cluster_by-2287"><a href="#Select.cluster_by-2287"><span class="linenos">2287</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.cluster_by-2288"><a href="#Select.cluster_by-2288"><span class="linenos">2288</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-2289"><a href="#Select.cluster_by-2289"><span class="linenos">2289</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.cluster_by-2290"><a href="#Select.cluster_by-2290"><span class="linenos">2290</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-2291"><a href="#Select.cluster_by-2291"><span class="linenos">2291</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-2292"><a href="#Select.cluster_by-2292"><span class="linenos">2292</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-2293"><a href="#Select.cluster_by-2293"><span class="linenos">2293</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-2294"><a href="#Select.cluster_by-2294"><span class="linenos">2294</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-2295"><a href="#Select.cluster_by-2295"><span class="linenos">2295</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-2296"><a href="#Select.cluster_by-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="Select.cluster_by-2297"><a href="#Select.cluster_by-2297"><span class="linenos">2297</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.cluster_by-2298"><a href="#Select.cluster_by-2298"><span class="linenos">2298</span></a> <span class="p">)</span>
</span></pre></div>
@@ -22751,36 +23248,36 @@ Otherwise, this flattens all the <code><a href="#Order">Order</a></code> express
</div>
<a class="headerlink" href="#Select.limit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.limit-2260"><a href="#Select.limit-2260"><span class="linenos">2260</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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.limit-2261"><a href="#Select.limit-2261"><span class="linenos">2261</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.limit-2262"><a href="#Select.limit-2262"><span class="linenos">2262</span></a><span class="sd"> Set the LIMIT expression.</span>
-</span><span id="Select.limit-2263"><a href="#Select.limit-2263"><span class="linenos">2263</span></a>
-</span><span id="Select.limit-2264"><a href="#Select.limit-2264"><span class="linenos">2264</span></a><span class="sd"> Example:</span>
-</span><span id="Select.limit-2265"><a href="#Select.limit-2265"><span class="linenos">2265</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).limit(10).sql()</span>
-</span><span id="Select.limit-2266"><a href="#Select.limit-2266"><span class="linenos">2266</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
-</span><span id="Select.limit-2267"><a href="#Select.limit-2267"><span class="linenos">2267</span></a>
-</span><span id="Select.limit-2268"><a href="#Select.limit-2268"><span class="linenos">2268</span></a><span class="sd"> Args:</span>
-</span><span id="Select.limit-2269"><a href="#Select.limit-2269"><span class="linenos">2269</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="Select.limit-2270"><a href="#Select.limit-2270"><span class="linenos">2270</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Select.limit-2271"><a href="#Select.limit-2271"><span class="linenos">2271</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
-</span><span id="Select.limit-2272"><a href="#Select.limit-2272"><span class="linenos">2272</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
-</span><span id="Select.limit-2273"><a href="#Select.limit-2273"><span class="linenos">2273</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select.limit-2274"><a href="#Select.limit-2274"><span class="linenos">2274</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.limit-2275"><a href="#Select.limit-2275"><span class="linenos">2275</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.limit-2276"><a href="#Select.limit-2276"><span class="linenos">2276</span></a>
-</span><span id="Select.limit-2277"><a href="#Select.limit-2277"><span class="linenos">2277</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.limit-2278"><a href="#Select.limit-2278"><span class="linenos">2278</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.limit-2279"><a href="#Select.limit-2279"><span class="linenos">2279</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.limit-2280"><a href="#Select.limit-2280"><span class="linenos">2280</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Select.limit-2281"><a href="#Select.limit-2281"><span class="linenos">2281</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="Select.limit-2282"><a href="#Select.limit-2282"><span class="linenos">2282</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.limit-2283"><a href="#Select.limit-2283"><span class="linenos">2283</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;limit&quot;</span><span class="p">,</span>
-</span><span id="Select.limit-2284"><a href="#Select.limit-2284"><span class="linenos">2284</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
-</span><span id="Select.limit-2285"><a href="#Select.limit-2285"><span class="linenos">2285</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LIMIT&quot;</span><span class="p">,</span>
-</span><span id="Select.limit-2286"><a href="#Select.limit-2286"><span class="linenos">2286</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.limit-2287"><a href="#Select.limit-2287"><span class="linenos">2287</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.limit-2288"><a href="#Select.limit-2288"><span class="linenos">2288</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.limit-2289"><a href="#Select.limit-2289"><span class="linenos">2289</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.limit-2300"><a href="#Select.limit-2300"><span class="linenos">2300</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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.limit-2301"><a href="#Select.limit-2301"><span class="linenos">2301</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.limit-2302"><a href="#Select.limit-2302"><span class="linenos">2302</span></a><span class="sd"> Set the LIMIT expression.</span>
+</span><span id="Select.limit-2303"><a href="#Select.limit-2303"><span class="linenos">2303</span></a>
+</span><span id="Select.limit-2304"><a href="#Select.limit-2304"><span class="linenos">2304</span></a><span class="sd"> Example:</span>
+</span><span id="Select.limit-2305"><a href="#Select.limit-2305"><span class="linenos">2305</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).limit(10).sql()</span>
+</span><span id="Select.limit-2306"><a href="#Select.limit-2306"><span class="linenos">2306</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
+</span><span id="Select.limit-2307"><a href="#Select.limit-2307"><span class="linenos">2307</span></a>
+</span><span id="Select.limit-2308"><a href="#Select.limit-2308"><span class="linenos">2308</span></a><span class="sd"> Args:</span>
+</span><span id="Select.limit-2309"><a href="#Select.limit-2309"><span class="linenos">2309</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
+</span><span id="Select.limit-2310"><a href="#Select.limit-2310"><span class="linenos">2310</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Select.limit-2311"><a href="#Select.limit-2311"><span class="linenos">2311</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
+</span><span id="Select.limit-2312"><a href="#Select.limit-2312"><span class="linenos">2312</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
+</span><span id="Select.limit-2313"><a href="#Select.limit-2313"><span class="linenos">2313</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Select.limit-2314"><a href="#Select.limit-2314"><span class="linenos">2314</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.limit-2315"><a href="#Select.limit-2315"><span class="linenos">2315</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select.limit-2316"><a href="#Select.limit-2316"><span class="linenos">2316</span></a>
+</span><span id="Select.limit-2317"><a href="#Select.limit-2317"><span class="linenos">2317</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.limit-2318"><a href="#Select.limit-2318"><span class="linenos">2318</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.limit-2319"><a href="#Select.limit-2319"><span class="linenos">2319</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.limit-2320"><a href="#Select.limit-2320"><span class="linenos">2320</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select.limit-2321"><a href="#Select.limit-2321"><span class="linenos">2321</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="Select.limit-2322"><a href="#Select.limit-2322"><span class="linenos">2322</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.limit-2323"><a href="#Select.limit-2323"><span class="linenos">2323</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;limit&quot;</span><span class="p">,</span>
+</span><span id="Select.limit-2324"><a href="#Select.limit-2324"><span class="linenos">2324</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
+</span><span id="Select.limit-2325"><a href="#Select.limit-2325"><span class="linenos">2325</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LIMIT&quot;</span><span class="p">,</span>
+</span><span id="Select.limit-2326"><a href="#Select.limit-2326"><span class="linenos">2326</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select.limit-2327"><a href="#Select.limit-2327"><span class="linenos">2327</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.limit-2328"><a href="#Select.limit-2328"><span class="linenos">2328</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.limit-2329"><a href="#Select.limit-2329"><span class="linenos">2329</span></a> <span class="p">)</span>
</span></pre></div>
@@ -22828,36 +23325,36 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Select.offset"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.offset-2291"><a href="#Select.offset-2291"><span class="linenos">2291</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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.offset-2292"><a href="#Select.offset-2292"><span class="linenos">2292</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.offset-2293"><a href="#Select.offset-2293"><span class="linenos">2293</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="Select.offset-2294"><a href="#Select.offset-2294"><span class="linenos">2294</span></a>
-</span><span id="Select.offset-2295"><a href="#Select.offset-2295"><span class="linenos">2295</span></a><span class="sd"> Example:</span>
-</span><span id="Select.offset-2296"><a href="#Select.offset-2296"><span class="linenos">2296</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).offset(10).sql()</span>
-</span><span id="Select.offset-2297"><a href="#Select.offset-2297"><span class="linenos">2297</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
-</span><span id="Select.offset-2298"><a href="#Select.offset-2298"><span class="linenos">2298</span></a>
-</span><span id="Select.offset-2299"><a href="#Select.offset-2299"><span class="linenos">2299</span></a><span class="sd"> Args:</span>
-</span><span id="Select.offset-2300"><a href="#Select.offset-2300"><span class="linenos">2300</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
-</span><span id="Select.offset-2301"><a href="#Select.offset-2301"><span class="linenos">2301</span></a><span class="sd"> This can also be an integer.</span>
-</span><span id="Select.offset-2302"><a href="#Select.offset-2302"><span class="linenos">2302</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
-</span><span id="Select.offset-2303"><a href="#Select.offset-2303"><span class="linenos">2303</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
-</span><span id="Select.offset-2304"><a href="#Select.offset-2304"><span class="linenos">2304</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="Select.offset-2305"><a href="#Select.offset-2305"><span class="linenos">2305</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.offset-2306"><a href="#Select.offset-2306"><span class="linenos">2306</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.offset-2307"><a href="#Select.offset-2307"><span class="linenos">2307</span></a>
-</span><span id="Select.offset-2308"><a href="#Select.offset-2308"><span class="linenos">2308</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.offset-2309"><a href="#Select.offset-2309"><span class="linenos">2309</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.offset-2310"><a href="#Select.offset-2310"><span class="linenos">2310</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.offset-2311"><a href="#Select.offset-2311"><span class="linenos">2311</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Select.offset-2312"><a href="#Select.offset-2312"><span class="linenos">2312</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="Select.offset-2313"><a href="#Select.offset-2313"><span class="linenos">2313</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.offset-2314"><a href="#Select.offset-2314"><span class="linenos">2314</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;offset&quot;</span><span class="p">,</span>
-</span><span id="Select.offset-2315"><a href="#Select.offset-2315"><span class="linenos">2315</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
-</span><span id="Select.offset-2316"><a href="#Select.offset-2316"><span class="linenos">2316</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;OFFSET&quot;</span><span class="p">,</span>
-</span><span id="Select.offset-2317"><a href="#Select.offset-2317"><span class="linenos">2317</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.offset-2318"><a href="#Select.offset-2318"><span class="linenos">2318</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.offset-2319"><a href="#Select.offset-2319"><span class="linenos">2319</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.offset-2320"><a href="#Select.offset-2320"><span class="linenos">2320</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.offset-2331"><a href="#Select.offset-2331"><span class="linenos">2331</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dialect</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 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.offset-2332"><a href="#Select.offset-2332"><span class="linenos">2332</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.offset-2333"><a href="#Select.offset-2333"><span class="linenos">2333</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="Select.offset-2334"><a href="#Select.offset-2334"><span class="linenos">2334</span></a>
+</span><span id="Select.offset-2335"><a href="#Select.offset-2335"><span class="linenos">2335</span></a><span class="sd"> Example:</span>
+</span><span id="Select.offset-2336"><a href="#Select.offset-2336"><span class="linenos">2336</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).offset(10).sql()</span>
+</span><span id="Select.offset-2337"><a href="#Select.offset-2337"><span class="linenos">2337</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
+</span><span id="Select.offset-2338"><a href="#Select.offset-2338"><span class="linenos">2338</span></a>
+</span><span id="Select.offset-2339"><a href="#Select.offset-2339"><span class="linenos">2339</span></a><span class="sd"> Args:</span>
+</span><span id="Select.offset-2340"><a href="#Select.offset-2340"><span class="linenos">2340</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span>
+</span><span id="Select.offset-2341"><a href="#Select.offset-2341"><span class="linenos">2341</span></a><span class="sd"> This can also be an integer.</span>
+</span><span id="Select.offset-2342"><a href="#Select.offset-2342"><span class="linenos">2342</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
+</span><span id="Select.offset-2343"><a href="#Select.offset-2343"><span class="linenos">2343</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
+</span><span id="Select.offset-2344"><a href="#Select.offset-2344"><span class="linenos">2344</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="Select.offset-2345"><a href="#Select.offset-2345"><span class="linenos">2345</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.offset-2346"><a href="#Select.offset-2346"><span class="linenos">2346</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select.offset-2347"><a href="#Select.offset-2347"><span class="linenos">2347</span></a>
+</span><span id="Select.offset-2348"><a href="#Select.offset-2348"><span class="linenos">2348</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.offset-2349"><a href="#Select.offset-2349"><span class="linenos">2349</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.offset-2350"><a href="#Select.offset-2350"><span class="linenos">2350</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.offset-2351"><a href="#Select.offset-2351"><span class="linenos">2351</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select.offset-2352"><a href="#Select.offset-2352"><span class="linenos">2352</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="Select.offset-2353"><a href="#Select.offset-2353"><span class="linenos">2353</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.offset-2354"><a href="#Select.offset-2354"><span class="linenos">2354</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;offset&quot;</span><span class="p">,</span>
+</span><span id="Select.offset-2355"><a href="#Select.offset-2355"><span class="linenos">2355</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
+</span><span id="Select.offset-2356"><a href="#Select.offset-2356"><span class="linenos">2356</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;OFFSET&quot;</span><span class="p">,</span>
+</span><span id="Select.offset-2357"><a href="#Select.offset-2357"><span class="linenos">2357</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select.offset-2358"><a href="#Select.offset-2358"><span class="linenos">2358</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.offset-2359"><a href="#Select.offset-2359"><span class="linenos">2359</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.offset-2360"><a href="#Select.offset-2360"><span class="linenos">2360</span></a> <span class="p">)</span>
</span></pre></div>
@@ -22905,42 +23402,42 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Select.select"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.select-2322"><a href="#Select.select-2322"><span class="linenos">2322</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Select.select-2323"><a href="#Select.select-2323"><span class="linenos">2323</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.select-2324"><a href="#Select.select-2324"><span class="linenos">2324</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><span id="Select.select-2325"><a href="#Select.select-2325"><span class="linenos">2325</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-2326"><a href="#Select.select-2326"><span class="linenos">2326</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-2327"><a href="#Select.select-2327"><span class="linenos">2327</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-2328"><a href="#Select.select-2328"><span class="linenos">2328</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.select-2329"><a href="#Select.select-2329"><span class="linenos">2329</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-2330"><a href="#Select.select-2330"><span class="linenos">2330</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.select-2331"><a href="#Select.select-2331"><span class="linenos">2331</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
-</span><span id="Select.select-2332"><a href="#Select.select-2332"><span class="linenos">2332</span></a>
-</span><span id="Select.select-2333"><a href="#Select.select-2333"><span class="linenos">2333</span></a><span class="sd"> Example:</span>
-</span><span id="Select.select-2334"><a href="#Select.select-2334"><span class="linenos">2334</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
-</span><span id="Select.select-2335"><a href="#Select.select-2335"><span class="linenos">2335</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
-</span><span id="Select.select-2336"><a href="#Select.select-2336"><span class="linenos">2336</span></a>
-</span><span id="Select.select-2337"><a href="#Select.select-2337"><span class="linenos">2337</span></a><span class="sd"> Args:</span>
-</span><span id="Select.select-2338"><a href="#Select.select-2338"><span class="linenos">2338</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.select-2339"><a href="#Select.select-2339"><span class="linenos">2339</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.select-2340"><a href="#Select.select-2340"><span class="linenos">2340</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select.select-2341"><a href="#Select.select-2341"><span class="linenos">2341</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select.select-2342"><a href="#Select.select-2342"><span class="linenos">2342</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select.select-2343"><a href="#Select.select-2343"><span class="linenos">2343</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.select-2344"><a href="#Select.select-2344"><span class="linenos">2344</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.select-2345"><a href="#Select.select-2345"><span class="linenos">2345</span></a>
-</span><span id="Select.select-2346"><a href="#Select.select-2346"><span class="linenos">2346</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.select-2347"><a href="#Select.select-2347"><span class="linenos">2347</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.select-2348"><a href="#Select.select-2348"><span class="linenos">2348</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.select-2349"><a href="#Select.select-2349"><span class="linenos">2349</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.select-2350"><a href="#Select.select-2350"><span class="linenos">2350</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.select-2351"><a href="#Select.select-2351"><span class="linenos">2351</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-2352"><a href="#Select.select-2352"><span class="linenos">2352</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-2353"><a href="#Select.select-2353"><span class="linenos">2353</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-2354"><a href="#Select.select-2354"><span class="linenos">2354</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-2355"><a href="#Select.select-2355"><span class="linenos">2355</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-2356"><a href="#Select.select-2356"><span class="linenos">2356</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.select-2357"><a href="#Select.select-2357"><span class="linenos">2357</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.select-2362"><a href="#Select.select-2362"><span class="linenos">2362</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Select.select-2363"><a href="#Select.select-2363"><span class="linenos">2363</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.select-2364"><a href="#Select.select-2364"><span class="linenos">2364</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><span id="Select.select-2365"><a href="#Select.select-2365"><span class="linenos">2365</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-2366"><a href="#Select.select-2366"><span class="linenos">2366</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-2367"><a href="#Select.select-2367"><span class="linenos">2367</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-2368"><a href="#Select.select-2368"><span class="linenos">2368</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.select-2369"><a href="#Select.select-2369"><span class="linenos">2369</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-2370"><a href="#Select.select-2370"><span class="linenos">2370</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.select-2371"><a href="#Select.select-2371"><span class="linenos">2371</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
+</span><span id="Select.select-2372"><a href="#Select.select-2372"><span class="linenos">2372</span></a>
+</span><span id="Select.select-2373"><a href="#Select.select-2373"><span class="linenos">2373</span></a><span class="sd"> Example:</span>
+</span><span id="Select.select-2374"><a href="#Select.select-2374"><span class="linenos">2374</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
+</span><span id="Select.select-2375"><a href="#Select.select-2375"><span class="linenos">2375</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
+</span><span id="Select.select-2376"><a href="#Select.select-2376"><span class="linenos">2376</span></a>
+</span><span id="Select.select-2377"><a href="#Select.select-2377"><span class="linenos">2377</span></a><span class="sd"> Args:</span>
+</span><span id="Select.select-2378"><a href="#Select.select-2378"><span class="linenos">2378</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.select-2379"><a href="#Select.select-2379"><span class="linenos">2379</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.select-2380"><a href="#Select.select-2380"><span class="linenos">2380</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.select-2381"><a href="#Select.select-2381"><span class="linenos">2381</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select.select-2382"><a href="#Select.select-2382"><span class="linenos">2382</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select.select-2383"><a href="#Select.select-2383"><span class="linenos">2383</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.select-2384"><a href="#Select.select-2384"><span class="linenos">2384</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.select-2385"><a href="#Select.select-2385"><span class="linenos">2385</span></a>
+</span><span id="Select.select-2386"><a href="#Select.select-2386"><span class="linenos">2386</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.select-2387"><a href="#Select.select-2387"><span class="linenos">2387</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.select-2388"><a href="#Select.select-2388"><span class="linenos">2388</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.select-2389"><a href="#Select.select-2389"><span class="linenos">2389</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.select-2390"><a href="#Select.select-2390"><span class="linenos">2390</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.select-2391"><a href="#Select.select-2391"><span class="linenos">2391</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-2392"><a href="#Select.select-2392"><span class="linenos">2392</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-2393"><a href="#Select.select-2393"><span class="linenos">2393</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-2394"><a href="#Select.select-2394"><span class="linenos">2394</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-2395"><a href="#Select.select-2395"><span class="linenos">2395</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-2396"><a href="#Select.select-2396"><span class="linenos">2396</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.select-2397"><a href="#Select.select-2397"><span class="linenos">2397</span></a> <span class="p">)</span>
</span></pre></div>
@@ -22988,37 +23485,37 @@ 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-2359"><a href="#Select.lateral-2359"><span class="linenos">2359</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select.lateral-2360"><a href="#Select.lateral-2360"><span class="linenos">2360</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.lateral-2361"><a href="#Select.lateral-2361"><span class="linenos">2361</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
-</span><span id="Select.lateral-2362"><a href="#Select.lateral-2362"><span class="linenos">2362</span></a>
-</span><span id="Select.lateral-2363"><a href="#Select.lateral-2363"><span class="linenos">2363</span></a><span class="sd"> Example:</span>
-</span><span id="Select.lateral-2364"><a href="#Select.lateral-2364"><span class="linenos">2364</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-2365"><a href="#Select.lateral-2365"><span class="linenos">2365</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-2366"><a href="#Select.lateral-2366"><span class="linenos">2366</span></a>
-</span><span id="Select.lateral-2367"><a href="#Select.lateral-2367"><span class="linenos">2367</span></a><span class="sd"> Args:</span>
-</span><span id="Select.lateral-2368"><a href="#Select.lateral-2368"><span class="linenos">2368</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.lateral-2369"><a href="#Select.lateral-2369"><span class="linenos">2369</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.lateral-2370"><a href="#Select.lateral-2370"><span class="linenos">2370</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select.lateral-2371"><a href="#Select.lateral-2371"><span class="linenos">2371</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select.lateral-2372"><a href="#Select.lateral-2372"><span class="linenos">2372</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select.lateral-2373"><a href="#Select.lateral-2373"><span class="linenos">2373</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.lateral-2374"><a href="#Select.lateral-2374"><span class="linenos">2374</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.lateral-2375"><a href="#Select.lateral-2375"><span class="linenos">2375</span></a>
-</span><span id="Select.lateral-2376"><a href="#Select.lateral-2376"><span class="linenos">2376</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.lateral-2377"><a href="#Select.lateral-2377"><span class="linenos">2377</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.lateral-2378"><a href="#Select.lateral-2378"><span class="linenos">2378</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.lateral-2379"><a href="#Select.lateral-2379"><span class="linenos">2379</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.lateral-2380"><a href="#Select.lateral-2380"><span class="linenos">2380</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.lateral-2381"><a href="#Select.lateral-2381"><span class="linenos">2381</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-2382"><a href="#Select.lateral-2382"><span class="linenos">2382</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-2383"><a href="#Select.lateral-2383"><span class="linenos">2383</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-2384"><a href="#Select.lateral-2384"><span class="linenos">2384</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-2385"><a href="#Select.lateral-2385"><span class="linenos">2385</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-2386"><a href="#Select.lateral-2386"><span class="linenos">2386</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-2387"><a href="#Select.lateral-2387"><span class="linenos">2387</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-2388"><a href="#Select.lateral-2388"><span class="linenos">2388</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.lateral-2389"><a href="#Select.lateral-2389"><span class="linenos">2389</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lateral-2399"><a href="#Select.lateral-2399"><span class="linenos">2399</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select.lateral-2400"><a href="#Select.lateral-2400"><span class="linenos">2400</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.lateral-2401"><a href="#Select.lateral-2401"><span class="linenos">2401</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
+</span><span id="Select.lateral-2402"><a href="#Select.lateral-2402"><span class="linenos">2402</span></a>
+</span><span id="Select.lateral-2403"><a href="#Select.lateral-2403"><span class="linenos">2403</span></a><span class="sd"> Example:</span>
+</span><span id="Select.lateral-2404"><a href="#Select.lateral-2404"><span class="linenos">2404</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-2405"><a href="#Select.lateral-2405"><span class="linenos">2405</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-2406"><a href="#Select.lateral-2406"><span class="linenos">2406</span></a>
+</span><span id="Select.lateral-2407"><a href="#Select.lateral-2407"><span class="linenos">2407</span></a><span class="sd"> Args:</span>
+</span><span id="Select.lateral-2408"><a href="#Select.lateral-2408"><span class="linenos">2408</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select.lateral-2409"><a href="#Select.lateral-2409"><span class="linenos">2409</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.lateral-2410"><a href="#Select.lateral-2410"><span class="linenos">2410</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Select.lateral-2411"><a href="#Select.lateral-2411"><span class="linenos">2411</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select.lateral-2412"><a href="#Select.lateral-2412"><span class="linenos">2412</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="Select.lateral-2413"><a href="#Select.lateral-2413"><span class="linenos">2413</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.lateral-2414"><a href="#Select.lateral-2414"><span class="linenos">2414</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select.lateral-2415"><a href="#Select.lateral-2415"><span class="linenos">2415</span></a>
+</span><span id="Select.lateral-2416"><a href="#Select.lateral-2416"><span class="linenos">2416</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.lateral-2417"><a href="#Select.lateral-2417"><span class="linenos">2417</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.lateral-2418"><a href="#Select.lateral-2418"><span class="linenos">2418</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.lateral-2419"><a href="#Select.lateral-2419"><span class="linenos">2419</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.lateral-2420"><a href="#Select.lateral-2420"><span class="linenos">2420</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.lateral-2421"><a href="#Select.lateral-2421"><span class="linenos">2421</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-2422"><a href="#Select.lateral-2422"><span class="linenos">2422</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-2423"><a href="#Select.lateral-2423"><span class="linenos">2423</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-2424"><a href="#Select.lateral-2424"><span class="linenos">2424</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-2425"><a href="#Select.lateral-2425"><span class="linenos">2425</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-2426"><a href="#Select.lateral-2426"><span class="linenos">2426</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-2427"><a href="#Select.lateral-2427"><span class="linenos">2427</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-2428"><a href="#Select.lateral-2428"><span class="linenos">2428</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.lateral-2429"><a href="#Select.lateral-2429"><span class="linenos">2429</span></a> <span class="p">)</span>
</span></pre></div>
@@ -23066,100 +23563,100 @@ 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-2391"><a href="#Select.join-2391"><span class="linenos">2391</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
-</span><span id="Select.join-2392"><a href="#Select.join-2392"><span class="linenos">2392</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.join-2393"><a href="#Select.join-2393"><span class="linenos">2393</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="Select.join-2394"><a href="#Select.join-2394"><span class="linenos">2394</span></a> <span class="n">on</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-2395"><a href="#Select.join-2395"><span class="linenos">2395</span></a> <span class="n">using</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-2396"><a href="#Select.join-2396"><span class="linenos">2396</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.join-2397"><a href="#Select.join-2397"><span class="linenos">2397</span></a> <span class="n">join_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-2398"><a href="#Select.join-2398"><span class="linenos">2398</span></a> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-2399"><a href="#Select.join-2399"><span class="linenos">2399</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-2400"><a href="#Select.join-2400"><span class="linenos">2400</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.join-2401"><a href="#Select.join-2401"><span class="linenos">2401</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.join-2402"><a href="#Select.join-2402"><span class="linenos">2402</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-2403"><a href="#Select.join-2403"><span class="linenos">2403</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.join-2404"><a href="#Select.join-2404"><span class="linenos">2404</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
-</span><span id="Select.join-2405"><a href="#Select.join-2405"><span class="linenos">2405</span></a>
-</span><span id="Select.join-2406"><a href="#Select.join-2406"><span class="linenos">2406</span></a><span class="sd"> Example:</span>
-</span><span id="Select.join-2407"><a href="#Select.join-2407"><span class="linenos">2407</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-2408"><a href="#Select.join-2408"><span class="linenos">2408</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</span><span id="Select.join-2409"><a href="#Select.join-2409"><span class="linenos">2409</span></a>
-</span><span id="Select.join-2410"><a href="#Select.join-2410"><span class="linenos">2410</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-2411"><a href="#Select.join-2411"><span class="linenos">2411</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
-</span><span id="Select.join-2412"><a href="#Select.join-2412"><span class="linenos">2412</span></a>
-</span><span id="Select.join-2413"><a href="#Select.join-2413"><span class="linenos">2413</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
-</span><span id="Select.join-2414"><a href="#Select.join-2414"><span class="linenos">2414</span></a>
-</span><span id="Select.join-2415"><a href="#Select.join-2415"><span class="linenos">2415</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-2416"><a href="#Select.join-2416"><span class="linenos">2416</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-2417"><a href="#Select.join-2417"><span class="linenos">2417</span></a>
-</span><span id="Select.join-2418"><a href="#Select.join-2418"><span class="linenos">2418</span></a><span class="sd"> Args:</span>
-</span><span id="Select.join-2419"><a href="#Select.join-2419"><span class="linenos">2419</span></a><span class="sd"> expression (str | Expression): the SQL code string to parse.</span>
-</span><span id="Select.join-2420"><a href="#Select.join-2420"><span class="linenos">2420</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.join-2421"><a href="#Select.join-2421"><span class="linenos">2421</span></a><span class="sd"> on (str | Expression): optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
-</span><span id="Select.join-2422"><a href="#Select.join-2422"><span class="linenos">2422</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.join-2423"><a href="#Select.join-2423"><span class="linenos">2423</span></a><span class="sd"> using (str | Expression): optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
-</span><span id="Select.join-2424"><a href="#Select.join-2424"><span class="linenos">2424</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.join-2425"><a href="#Select.join-2425"><span class="linenos">2425</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
-</span><span id="Select.join-2426"><a href="#Select.join-2426"><span class="linenos">2426</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select.join-2427"><a href="#Select.join-2427"><span class="linenos">2427</span></a><span class="sd"> join_type (str): If set, alter the parsed join type</span>
-</span><span id="Select.join-2428"><a href="#Select.join-2428"><span class="linenos">2428</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select.join-2429"><a href="#Select.join-2429"><span class="linenos">2429</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.join-2430"><a href="#Select.join-2430"><span class="linenos">2430</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.join-2431"><a href="#Select.join-2431"><span class="linenos">2431</span></a>
-</span><span id="Select.join-2432"><a href="#Select.join-2432"><span class="linenos">2432</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.join-2433"><a href="#Select.join-2433"><span class="linenos">2433</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.join-2434"><a href="#Select.join-2434"><span class="linenos">2434</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.join-2435"><a href="#Select.join-2435"><span class="linenos">2435</span></a> <span class="n">parse_args</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-2436"><a href="#Select.join-2436"><span class="linenos">2436</span></a>
-</span><span id="Select.join-2437"><a href="#Select.join-2437"><span class="linenos">2437</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="Select.join-2438"><a href="#Select.join-2438"><span class="linenos">2438</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-2439"><a href="#Select.join-2439"><span class="linenos">2439</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="Select.join-2440"><a href="#Select.join-2440"><span class="linenos">2440</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-2441"><a href="#Select.join-2441"><span class="linenos">2441</span></a>
-</span><span id="Select.join-2442"><a href="#Select.join-2442"><span class="linenos">2442</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-2443"><a href="#Select.join-2443"><span class="linenos">2443</span></a>
-</span><span id="Select.join-2444"><a href="#Select.join-2444"><span class="linenos">2444</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-2445"><a href="#Select.join-2445"><span class="linenos">2445</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-2446"><a href="#Select.join-2446"><span class="linenos">2446</span></a>
-</span><span id="Select.join-2447"><a href="#Select.join-2447"><span class="linenos">2447</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
-</span><span id="Select.join-2448"><a href="#Select.join-2448"><span class="linenos">2448</span></a> <span class="n">natural</span><span 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-2449"><a href="#Select.join-2449"><span class="linenos">2449</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-2450"><a href="#Select.join-2450"><span class="linenos">2450</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-2451"><a href="#Select.join-2451"><span class="linenos">2451</span></a>
-</span><span id="Select.join-2452"><a href="#Select.join-2452"><span class="linenos">2452</span></a> <span class="n">natural</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-2453"><a href="#Select.join-2453"><span class="linenos">2453</span></a>
-</span><span id="Select.join-2454"><a href="#Select.join-2454"><span class="linenos">2454</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span>
-</span><span id="Select.join-2455"><a href="#Select.join-2455"><span class="linenos">2455</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;natural&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
-</span><span id="Select.join-2456"><a href="#Select.join-2456"><span class="linenos">2456</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
-</span><span id="Select.join-2457"><a href="#Select.join-2457"><span class="linenos">2457</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-2458"><a href="#Select.join-2458"><span class="linenos">2458</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
-</span><span id="Select.join-2459"><a href="#Select.join-2459"><span class="linenos">2459</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-2460"><a href="#Select.join-2460"><span class="linenos">2460</span></a>
-</span><span id="Select.join-2461"><a href="#Select.join-2461"><span class="linenos">2461</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
-</span><span id="Select.join-2462"><a href="#Select.join-2462"><span class="linenos">2462</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_collection</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="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Select.join-2463"><a href="#Select.join-2463"><span class="linenos">2463</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-2464"><a href="#Select.join-2464"><span class="linenos">2464</span></a>
-</span><span id="Select.join-2465"><a href="#Select.join-2465"><span class="linenos">2465</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
-</span><span id="Select.join-2466"><a href="#Select.join-2466"><span class="linenos">2466</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-2467"><a href="#Select.join-2467"><span class="linenos">2467</span></a> <span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
-</span><span id="Select.join-2468"><a href="#Select.join-2468"><span class="linenos">2468</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-2469"><a href="#Select.join-2469"><span class="linenos">2469</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-2470"><a href="#Select.join-2470"><span class="linenos">2470</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-2471"><a href="#Select.join-2471"><span class="linenos">2471</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-2472"><a href="#Select.join-2472"><span class="linenos">2472</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.join-2473"><a href="#Select.join-2473"><span class="linenos">2473</span></a> <span class="p">)</span>
-</span><span id="Select.join-2474"><a href="#Select.join-2474"><span class="linenos">2474</span></a>
-</span><span id="Select.join-2475"><a href="#Select.join-2475"><span class="linenos">2475</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
-</span><span id="Select.join-2476"><a href="#Select.join-2476"><span class="linenos">2476</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-2477"><a href="#Select.join-2477"><span class="linenos">2477</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.join-2478"><a href="#Select.join-2478"><span class="linenos">2478</span></a> <span class="n">join</span><span class="p">,</span>
-</span><span id="Select.join-2479"><a href="#Select.join-2479"><span class="linenos">2479</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-2480"><a href="#Select.join-2480"><span class="linenos">2480</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-2481"><a href="#Select.join-2481"><span class="linenos">2481</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-2482"><a href="#Select.join-2482"><span class="linenos">2482</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-2483"><a href="#Select.join-2483"><span class="linenos">2483</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.join-2484"><a href="#Select.join-2484"><span class="linenos">2484</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.join-2431"><a href="#Select.join-2431"><span class="linenos">2431</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
+</span><span id="Select.join-2432"><a href="#Select.join-2432"><span class="linenos">2432</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.join-2433"><a href="#Select.join-2433"><span class="linenos">2433</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="Select.join-2434"><a href="#Select.join-2434"><span class="linenos">2434</span></a> <span class="n">on</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.join-2435"><a href="#Select.join-2435"><span class="linenos">2435</span></a> <span class="n">using</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.join-2436"><a href="#Select.join-2436"><span class="linenos">2436</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.join-2437"><a href="#Select.join-2437"><span class="linenos">2437</span></a> <span class="n">join_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.join-2438"><a href="#Select.join-2438"><span class="linenos">2438</span></a> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.join-2439"><a href="#Select.join-2439"><span class="linenos">2439</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.join-2440"><a href="#Select.join-2440"><span class="linenos">2440</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.join-2441"><a href="#Select.join-2441"><span class="linenos">2441</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.join-2442"><a href="#Select.join-2442"><span class="linenos">2442</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-2443"><a href="#Select.join-2443"><span class="linenos">2443</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.join-2444"><a href="#Select.join-2444"><span class="linenos">2444</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
+</span><span id="Select.join-2445"><a href="#Select.join-2445"><span class="linenos">2445</span></a>
+</span><span id="Select.join-2446"><a href="#Select.join-2446"><span class="linenos">2446</span></a><span class="sd"> Example:</span>
+</span><span id="Select.join-2447"><a href="#Select.join-2447"><span class="linenos">2447</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-2448"><a href="#Select.join-2448"><span class="linenos">2448</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</span><span id="Select.join-2449"><a href="#Select.join-2449"><span class="linenos">2449</span></a>
+</span><span id="Select.join-2450"><a href="#Select.join-2450"><span class="linenos">2450</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-2451"><a href="#Select.join-2451"><span class="linenos">2451</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
+</span><span id="Select.join-2452"><a href="#Select.join-2452"><span class="linenos">2452</span></a>
+</span><span id="Select.join-2453"><a href="#Select.join-2453"><span class="linenos">2453</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
+</span><span id="Select.join-2454"><a href="#Select.join-2454"><span class="linenos">2454</span></a>
+</span><span id="Select.join-2455"><a href="#Select.join-2455"><span class="linenos">2455</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-2456"><a href="#Select.join-2456"><span class="linenos">2456</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-2457"><a href="#Select.join-2457"><span class="linenos">2457</span></a>
+</span><span id="Select.join-2458"><a href="#Select.join-2458"><span class="linenos">2458</span></a><span class="sd"> Args:</span>
+</span><span id="Select.join-2459"><a href="#Select.join-2459"><span class="linenos">2459</span></a><span class="sd"> expression (str | Expression): the SQL code string to parse.</span>
+</span><span id="Select.join-2460"><a href="#Select.join-2460"><span class="linenos">2460</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.join-2461"><a href="#Select.join-2461"><span class="linenos">2461</span></a><span class="sd"> on (str | Expression): optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
+</span><span id="Select.join-2462"><a href="#Select.join-2462"><span class="linenos">2462</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.join-2463"><a href="#Select.join-2463"><span class="linenos">2463</span></a><span class="sd"> using (str | Expression): optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
+</span><span id="Select.join-2464"><a href="#Select.join-2464"><span class="linenos">2464</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.join-2465"><a href="#Select.join-2465"><span class="linenos">2465</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span>
+</span><span id="Select.join-2466"><a href="#Select.join-2466"><span class="linenos">2466</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select.join-2467"><a href="#Select.join-2467"><span class="linenos">2467</span></a><span class="sd"> join_type (str): If set, alter the parsed join type</span>
+</span><span id="Select.join-2468"><a href="#Select.join-2468"><span class="linenos">2468</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="Select.join-2469"><a href="#Select.join-2469"><span class="linenos">2469</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.join-2470"><a href="#Select.join-2470"><span class="linenos">2470</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select.join-2471"><a href="#Select.join-2471"><span class="linenos">2471</span></a>
+</span><span id="Select.join-2472"><a href="#Select.join-2472"><span class="linenos">2472</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.join-2473"><a href="#Select.join-2473"><span class="linenos">2473</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.join-2474"><a href="#Select.join-2474"><span class="linenos">2474</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.join-2475"><a href="#Select.join-2475"><span class="linenos">2475</span></a> <span class="n">parse_args</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-2476"><a href="#Select.join-2476"><span class="linenos">2476</span></a>
+</span><span id="Select.join-2477"><a href="#Select.join-2477"><span class="linenos">2477</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="Select.join-2478"><a href="#Select.join-2478"><span class="linenos">2478</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-2479"><a href="#Select.join-2479"><span class="linenos">2479</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="Select.join-2480"><a href="#Select.join-2480"><span class="linenos">2480</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-2481"><a href="#Select.join-2481"><span class="linenos">2481</span></a>
+</span><span id="Select.join-2482"><a href="#Select.join-2482"><span class="linenos">2482</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-2483"><a href="#Select.join-2483"><span class="linenos">2483</span></a>
+</span><span id="Select.join-2484"><a href="#Select.join-2484"><span class="linenos">2484</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-2485"><a href="#Select.join-2485"><span class="linenos">2485</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-2486"><a href="#Select.join-2486"><span class="linenos">2486</span></a>
+</span><span id="Select.join-2487"><a href="#Select.join-2487"><span class="linenos">2487</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
+</span><span id="Select.join-2488"><a href="#Select.join-2488"><span class="linenos">2488</span></a> <span class="n">natural</span><span 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-2489"><a href="#Select.join-2489"><span class="linenos">2489</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-2490"><a href="#Select.join-2490"><span class="linenos">2490</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-2491"><a href="#Select.join-2491"><span class="linenos">2491</span></a>
+</span><span id="Select.join-2492"><a href="#Select.join-2492"><span class="linenos">2492</span></a> <span class="n">natural</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-2493"><a href="#Select.join-2493"><span class="linenos">2493</span></a>
+</span><span id="Select.join-2494"><a href="#Select.join-2494"><span class="linenos">2494</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span>
+</span><span id="Select.join-2495"><a href="#Select.join-2495"><span class="linenos">2495</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;natural&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
+</span><span id="Select.join-2496"><a href="#Select.join-2496"><span class="linenos">2496</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
+</span><span id="Select.join-2497"><a href="#Select.join-2497"><span class="linenos">2497</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-2498"><a href="#Select.join-2498"><span class="linenos">2498</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
+</span><span id="Select.join-2499"><a href="#Select.join-2499"><span class="linenos">2499</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-2500"><a href="#Select.join-2500"><span class="linenos">2500</span></a>
+</span><span id="Select.join-2501"><a href="#Select.join-2501"><span class="linenos">2501</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
+</span><span id="Select.join-2502"><a href="#Select.join-2502"><span class="linenos">2502</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_collection</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="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Select.join-2503"><a href="#Select.join-2503"><span class="linenos">2503</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-2504"><a href="#Select.join-2504"><span class="linenos">2504</span></a>
+</span><span id="Select.join-2505"><a href="#Select.join-2505"><span class="linenos">2505</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
+</span><span id="Select.join-2506"><a href="#Select.join-2506"><span class="linenos">2506</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-2507"><a href="#Select.join-2507"><span class="linenos">2507</span></a> <span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
+</span><span id="Select.join-2508"><a href="#Select.join-2508"><span class="linenos">2508</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-2509"><a href="#Select.join-2509"><span class="linenos">2509</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-2510"><a href="#Select.join-2510"><span class="linenos">2510</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-2511"><a href="#Select.join-2511"><span class="linenos">2511</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-2512"><a href="#Select.join-2512"><span class="linenos">2512</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.join-2513"><a href="#Select.join-2513"><span class="linenos">2513</span></a> <span class="p">)</span>
+</span><span id="Select.join-2514"><a href="#Select.join-2514"><span class="linenos">2514</span></a>
+</span><span id="Select.join-2515"><a href="#Select.join-2515"><span class="linenos">2515</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
+</span><span id="Select.join-2516"><a href="#Select.join-2516"><span class="linenos">2516</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-2517"><a href="#Select.join-2517"><span class="linenos">2517</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.join-2518"><a href="#Select.join-2518"><span class="linenos">2518</span></a> <span class="n">join</span><span class="p">,</span>
+</span><span id="Select.join-2519"><a href="#Select.join-2519"><span class="linenos">2519</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-2520"><a href="#Select.join-2520"><span class="linenos">2520</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-2521"><a href="#Select.join-2521"><span class="linenos">2521</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-2522"><a href="#Select.join-2522"><span class="linenos">2522</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-2523"><a href="#Select.join-2523"><span class="linenos">2523</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.join-2524"><a href="#Select.join-2524"><span class="linenos">2524</span></a> <span class="p">)</span>
</span></pre></div>
@@ -23226,37 +23723,37 @@ 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-2486"><a href="#Select.where-2486"><span class="linenos">2486</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select.where-2487"><a href="#Select.where-2487"><span class="linenos">2487</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.where-2488"><a href="#Select.where-2488"><span class="linenos">2488</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="Select.where-2489"><a href="#Select.where-2489"><span class="linenos">2489</span></a>
-</span><span id="Select.where-2490"><a href="#Select.where-2490"><span class="linenos">2490</span></a><span class="sd"> Example:</span>
-</span><span id="Select.where-2491"><a href="#Select.where-2491"><span class="linenos">2491</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-2492"><a href="#Select.where-2492"><span class="linenos">2492</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-2493"><a href="#Select.where-2493"><span class="linenos">2493</span></a>
-</span><span id="Select.where-2494"><a href="#Select.where-2494"><span class="linenos">2494</span></a><span class="sd"> Args:</span>
-</span><span id="Select.where-2495"><a href="#Select.where-2495"><span class="linenos">2495</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.where-2496"><a href="#Select.where-2496"><span class="linenos">2496</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.where-2497"><a href="#Select.where-2497"><span class="linenos">2497</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select.where-2498"><a href="#Select.where-2498"><span class="linenos">2498</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select.where-2499"><a href="#Select.where-2499"><span class="linenos">2499</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select.where-2500"><a href="#Select.where-2500"><span class="linenos">2500</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select.where-2501"><a href="#Select.where-2501"><span class="linenos">2501</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.where-2502"><a href="#Select.where-2502"><span class="linenos">2502</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.where-2503"><a href="#Select.where-2503"><span class="linenos">2503</span></a>
-</span><span id="Select.where-2504"><a href="#Select.where-2504"><span class="linenos">2504</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.where-2505"><a href="#Select.where-2505"><span class="linenos">2505</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.where-2506"><a href="#Select.where-2506"><span class="linenos">2506</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.where-2507"><a href="#Select.where-2507"><span class="linenos">2507</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select.where-2508"><a href="#Select.where-2508"><span class="linenos">2508</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.where-2509"><a href="#Select.where-2509"><span class="linenos">2509</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-2510"><a href="#Select.where-2510"><span class="linenos">2510</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-2511"><a href="#Select.where-2511"><span class="linenos">2511</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-2512"><a href="#Select.where-2512"><span class="linenos">2512</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-2513"><a href="#Select.where-2513"><span class="linenos">2513</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-2514"><a href="#Select.where-2514"><span class="linenos">2514</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-2515"><a href="#Select.where-2515"><span class="linenos">2515</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.where-2516"><a href="#Select.where-2516"><span class="linenos">2516</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.where-2526"><a href="#Select.where-2526"><span class="linenos">2526</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select.where-2527"><a href="#Select.where-2527"><span class="linenos">2527</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.where-2528"><a href="#Select.where-2528"><span class="linenos">2528</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="Select.where-2529"><a href="#Select.where-2529"><span class="linenos">2529</span></a>
+</span><span id="Select.where-2530"><a href="#Select.where-2530"><span class="linenos">2530</span></a><span class="sd"> Example:</span>
+</span><span id="Select.where-2531"><a href="#Select.where-2531"><span class="linenos">2531</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-2532"><a href="#Select.where-2532"><span class="linenos">2532</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-2533"><a href="#Select.where-2533"><span class="linenos">2533</span></a>
+</span><span id="Select.where-2534"><a href="#Select.where-2534"><span class="linenos">2534</span></a><span class="sd"> Args:</span>
+</span><span id="Select.where-2535"><a href="#Select.where-2535"><span class="linenos">2535</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select.where-2536"><a href="#Select.where-2536"><span class="linenos">2536</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.where-2537"><a href="#Select.where-2537"><span class="linenos">2537</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select.where-2538"><a href="#Select.where-2538"><span class="linenos">2538</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select.where-2539"><a href="#Select.where-2539"><span class="linenos">2539</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select.where-2540"><a href="#Select.where-2540"><span class="linenos">2540</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="Select.where-2541"><a href="#Select.where-2541"><span class="linenos">2541</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.where-2542"><a href="#Select.where-2542"><span class="linenos">2542</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select.where-2543"><a href="#Select.where-2543"><span class="linenos">2543</span></a>
+</span><span id="Select.where-2544"><a href="#Select.where-2544"><span class="linenos">2544</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.where-2545"><a href="#Select.where-2545"><span class="linenos">2545</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.where-2546"><a href="#Select.where-2546"><span class="linenos">2546</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.where-2547"><a href="#Select.where-2547"><span class="linenos">2547</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select.where-2548"><a href="#Select.where-2548"><span class="linenos">2548</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.where-2549"><a href="#Select.where-2549"><span class="linenos">2549</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-2550"><a href="#Select.where-2550"><span class="linenos">2550</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-2551"><a href="#Select.where-2551"><span class="linenos">2551</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-2552"><a href="#Select.where-2552"><span class="linenos">2552</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-2553"><a href="#Select.where-2553"><span class="linenos">2553</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-2554"><a href="#Select.where-2554"><span class="linenos">2554</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-2555"><a href="#Select.where-2555"><span class="linenos">2555</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.where-2556"><a href="#Select.where-2556"><span class="linenos">2556</span></a> <span class="p">)</span>
</span></pre></div>
@@ -23305,37 +23802,37 @@ 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-2518"><a href="#Select.having-2518"><span class="linenos">2518</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select.having-2519"><a href="#Select.having-2519"><span class="linenos">2519</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.having-2520"><a href="#Select.having-2520"><span class="linenos">2520</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
-</span><span id="Select.having-2521"><a href="#Select.having-2521"><span class="linenos">2521</span></a>
-</span><span id="Select.having-2522"><a href="#Select.having-2522"><span class="linenos">2522</span></a><span class="sd"> Example:</span>
-</span><span id="Select.having-2523"><a href="#Select.having-2523"><span class="linenos">2523</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-2524"><a href="#Select.having-2524"><span class="linenos">2524</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-2525"><a href="#Select.having-2525"><span class="linenos">2525</span></a>
-</span><span id="Select.having-2526"><a href="#Select.having-2526"><span class="linenos">2526</span></a><span class="sd"> Args:</span>
-</span><span id="Select.having-2527"><a href="#Select.having-2527"><span class="linenos">2527</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="Select.having-2528"><a href="#Select.having-2528"><span class="linenos">2528</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.having-2529"><a href="#Select.having-2529"><span class="linenos">2529</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select.having-2530"><a href="#Select.having-2530"><span class="linenos">2530</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select.having-2531"><a href="#Select.having-2531"><span class="linenos">2531</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select.having-2532"><a href="#Select.having-2532"><span class="linenos">2532</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="Select.having-2533"><a href="#Select.having-2533"><span class="linenos">2533</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.having-2534"><a href="#Select.having-2534"><span class="linenos">2534</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="Select.having-2535"><a href="#Select.having-2535"><span class="linenos">2535</span></a>
-</span><span id="Select.having-2536"><a href="#Select.having-2536"><span class="linenos">2536</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.having-2537"><a href="#Select.having-2537"><span class="linenos">2537</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.having-2538"><a href="#Select.having-2538"><span class="linenos">2538</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.having-2539"><a href="#Select.having-2539"><span class="linenos">2539</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select.having-2540"><a href="#Select.having-2540"><span class="linenos">2540</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.having-2541"><a href="#Select.having-2541"><span class="linenos">2541</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-2542"><a href="#Select.having-2542"><span class="linenos">2542</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-2543"><a href="#Select.having-2543"><span class="linenos">2543</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-2544"><a href="#Select.having-2544"><span class="linenos">2544</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-2545"><a href="#Select.having-2545"><span class="linenos">2545</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-2546"><a href="#Select.having-2546"><span class="linenos">2546</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-2547"><a href="#Select.having-2547"><span class="linenos">2547</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.having-2548"><a href="#Select.having-2548"><span class="linenos">2548</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.having-2558"><a href="#Select.having-2558"><span class="linenos">2558</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select.having-2559"><a href="#Select.having-2559"><span class="linenos">2559</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.having-2560"><a href="#Select.having-2560"><span class="linenos">2560</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
+</span><span id="Select.having-2561"><a href="#Select.having-2561"><span class="linenos">2561</span></a>
+</span><span id="Select.having-2562"><a href="#Select.having-2562"><span class="linenos">2562</span></a><span class="sd"> Example:</span>
+</span><span id="Select.having-2563"><a href="#Select.having-2563"><span class="linenos">2563</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-2564"><a href="#Select.having-2564"><span class="linenos">2564</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-2565"><a href="#Select.having-2565"><span class="linenos">2565</span></a>
+</span><span id="Select.having-2566"><a href="#Select.having-2566"><span class="linenos">2566</span></a><span class="sd"> Args:</span>
+</span><span id="Select.having-2567"><a href="#Select.having-2567"><span class="linenos">2567</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="Select.having-2568"><a href="#Select.having-2568"><span class="linenos">2568</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.having-2569"><a href="#Select.having-2569"><span class="linenos">2569</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select.having-2570"><a href="#Select.having-2570"><span class="linenos">2570</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select.having-2571"><a href="#Select.having-2571"><span class="linenos">2571</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select.having-2572"><a href="#Select.having-2572"><span class="linenos">2572</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="Select.having-2573"><a href="#Select.having-2573"><span class="linenos">2573</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.having-2574"><a href="#Select.having-2574"><span class="linenos">2574</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="Select.having-2575"><a href="#Select.having-2575"><span class="linenos">2575</span></a>
+</span><span id="Select.having-2576"><a href="#Select.having-2576"><span class="linenos">2576</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.having-2577"><a href="#Select.having-2577"><span class="linenos">2577</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.having-2578"><a href="#Select.having-2578"><span class="linenos">2578</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.having-2579"><a href="#Select.having-2579"><span class="linenos">2579</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select.having-2580"><a href="#Select.having-2580"><span class="linenos">2580</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.having-2581"><a href="#Select.having-2581"><span class="linenos">2581</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-2582"><a href="#Select.having-2582"><span class="linenos">2582</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-2583"><a href="#Select.having-2583"><span class="linenos">2583</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-2584"><a href="#Select.having-2584"><span class="linenos">2584</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-2585"><a href="#Select.having-2585"><span class="linenos">2585</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-2586"><a href="#Select.having-2586"><span class="linenos">2586</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-2587"><a href="#Select.having-2587"><span class="linenos">2587</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.having-2588"><a href="#Select.having-2588"><span class="linenos">2588</span></a> <span class="p">)</span>
</span></pre></div>
@@ -23384,17 +23881,17 @@ 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-2550"><a href="#Select.window-2550"><span class="linenos">2550</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select.window-2551"><a href="#Select.window-2551"><span class="linenos">2551</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.window-2552"><a href="#Select.window-2552"><span class="linenos">2552</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.window-2553"><a href="#Select.window-2553"><span class="linenos">2553</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-2554"><a href="#Select.window-2554"><span class="linenos">2554</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-2555"><a href="#Select.window-2555"><span class="linenos">2555</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-2556"><a href="#Select.window-2556"><span class="linenos">2556</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-2557"><a href="#Select.window-2557"><span class="linenos">2557</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-2558"><a href="#Select.window-2558"><span class="linenos">2558</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-2559"><a href="#Select.window-2559"><span class="linenos">2559</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.window-2560"><a href="#Select.window-2560"><span class="linenos">2560</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.window-2590"><a href="#Select.window-2590"><span class="linenos">2590</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select.window-2591"><a href="#Select.window-2591"><span class="linenos">2591</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.window-2592"><a href="#Select.window-2592"><span class="linenos">2592</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.window-2593"><a href="#Select.window-2593"><span class="linenos">2593</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-2594"><a href="#Select.window-2594"><span class="linenos">2594</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-2595"><a href="#Select.window-2595"><span class="linenos">2595</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-2596"><a href="#Select.window-2596"><span class="linenos">2596</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-2597"><a href="#Select.window-2597"><span class="linenos">2597</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-2598"><a href="#Select.window-2598"><span class="linenos">2598</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-2599"><a href="#Select.window-2599"><span class="linenos">2599</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.window-2600"><a href="#Select.window-2600"><span class="linenos">2600</span></a> <span class="p">)</span>
</span></pre></div>
@@ -23412,17 +23909,17 @@ 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-2562"><a href="#Select.qualify-2562"><span class="linenos">2562</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
-</span><span id="Select.qualify-2563"><a href="#Select.qualify-2563"><span class="linenos">2563</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select.qualify-2564"><a href="#Select.qualify-2564"><span class="linenos">2564</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.qualify-2565"><a href="#Select.qualify-2565"><span class="linenos">2565</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-2566"><a href="#Select.qualify-2566"><span class="linenos">2566</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-2567"><a href="#Select.qualify-2567"><span class="linenos">2567</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-2568"><a href="#Select.qualify-2568"><span class="linenos">2568</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-2569"><a href="#Select.qualify-2569"><span class="linenos">2569</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-2570"><a href="#Select.qualify-2570"><span class="linenos">2570</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-2571"><a href="#Select.qualify-2571"><span class="linenos">2571</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.qualify-2572"><a href="#Select.qualify-2572"><span class="linenos">2572</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.qualify-2602"><a href="#Select.qualify-2602"><span class="linenos">2602</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Select</span><span class="p">:</span>
+</span><span id="Select.qualify-2603"><a href="#Select.qualify-2603"><span class="linenos">2603</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select.qualify-2604"><a href="#Select.qualify-2604"><span class="linenos">2604</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.qualify-2605"><a href="#Select.qualify-2605"><span class="linenos">2605</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-2606"><a href="#Select.qualify-2606"><span class="linenos">2606</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-2607"><a href="#Select.qualify-2607"><span class="linenos">2607</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-2608"><a href="#Select.qualify-2608"><span class="linenos">2608</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-2609"><a href="#Select.qualify-2609"><span class="linenos">2609</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-2610"><a href="#Select.qualify-2610"><span class="linenos">2610</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-2611"><a href="#Select.qualify-2611"><span class="linenos">2611</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.qualify-2612"><a href="#Select.qualify-2612"><span class="linenos">2612</span></a> <span class="p">)</span>
</span></pre></div>
@@ -23440,24 +23937,24 @@ 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-2574"><a href="#Select.distinct-2574"><span class="linenos">2574</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</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.distinct-2575"><a href="#Select.distinct-2575"><span class="linenos">2575</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.distinct-2576"><a href="#Select.distinct-2576"><span class="linenos">2576</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="Select.distinct-2577"><a href="#Select.distinct-2577"><span class="linenos">2577</span></a>
-</span><span id="Select.distinct-2578"><a href="#Select.distinct-2578"><span class="linenos">2578</span></a><span class="sd"> Example:</span>
-</span><span id="Select.distinct-2579"><a href="#Select.distinct-2579"><span class="linenos">2579</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-2580"><a href="#Select.distinct-2580"><span class="linenos">2580</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
-</span><span id="Select.distinct-2581"><a href="#Select.distinct-2581"><span class="linenos">2581</span></a>
-</span><span id="Select.distinct-2582"><a href="#Select.distinct-2582"><span class="linenos">2582</span></a><span class="sd"> Args:</span>
-</span><span id="Select.distinct-2583"><a href="#Select.distinct-2583"><span class="linenos">2583</span></a><span class="sd"> distinct (bool): whether the Select should be distinct</span>
-</span><span id="Select.distinct-2584"><a href="#Select.distinct-2584"><span class="linenos">2584</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.distinct-2585"><a href="#Select.distinct-2585"><span class="linenos">2585</span></a>
-</span><span id="Select.distinct-2586"><a href="#Select.distinct-2586"><span class="linenos">2586</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.distinct-2587"><a href="#Select.distinct-2587"><span class="linenos">2587</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.distinct-2588"><a href="#Select.distinct-2588"><span class="linenos">2588</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.distinct-2589"><a href="#Select.distinct-2589"><span class="linenos">2589</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-2590"><a href="#Select.distinct-2590"><span class="linenos">2590</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="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-2591"><a href="#Select.distinct-2591"><span class="linenos">2591</span></a> <span class="k">return</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.distinct-2614"><a href="#Select.distinct-2614"><span class="linenos">2614</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</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.distinct-2615"><a href="#Select.distinct-2615"><span class="linenos">2615</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.distinct-2616"><a href="#Select.distinct-2616"><span class="linenos">2616</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="Select.distinct-2617"><a href="#Select.distinct-2617"><span class="linenos">2617</span></a>
+</span><span id="Select.distinct-2618"><a href="#Select.distinct-2618"><span class="linenos">2618</span></a><span class="sd"> Example:</span>
+</span><span id="Select.distinct-2619"><a href="#Select.distinct-2619"><span class="linenos">2619</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-2620"><a href="#Select.distinct-2620"><span class="linenos">2620</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
+</span><span id="Select.distinct-2621"><a href="#Select.distinct-2621"><span class="linenos">2621</span></a>
+</span><span id="Select.distinct-2622"><a href="#Select.distinct-2622"><span class="linenos">2622</span></a><span class="sd"> Args:</span>
+</span><span id="Select.distinct-2623"><a href="#Select.distinct-2623"><span class="linenos">2623</span></a><span class="sd"> distinct (bool): whether the Select should be distinct</span>
+</span><span id="Select.distinct-2624"><a href="#Select.distinct-2624"><span class="linenos">2624</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.distinct-2625"><a href="#Select.distinct-2625"><span class="linenos">2625</span></a>
+</span><span id="Select.distinct-2626"><a href="#Select.distinct-2626"><span class="linenos">2626</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.distinct-2627"><a href="#Select.distinct-2627"><span class="linenos">2627</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.distinct-2628"><a href="#Select.distinct-2628"><span class="linenos">2628</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.distinct-2629"><a href="#Select.distinct-2629"><span class="linenos">2629</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-2630"><a href="#Select.distinct-2630"><span class="linenos">2630</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="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-2631"><a href="#Select.distinct-2631"><span class="linenos">2631</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
@@ -23500,42 +23997,42 @@ 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-2593"><a href="#Select.ctas-2593"><span class="linenos">2593</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Create</span><span class="p">:</span>
-</span><span id="Select.ctas-2594"><a href="#Select.ctas-2594"><span class="linenos">2594</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.ctas-2595"><a href="#Select.ctas-2595"><span class="linenos">2595</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
-</span><span id="Select.ctas-2596"><a href="#Select.ctas-2596"><span class="linenos">2596</span></a>
-</span><span id="Select.ctas-2597"><a href="#Select.ctas-2597"><span class="linenos">2597</span></a><span class="sd"> Example:</span>
-</span><span id="Select.ctas-2598"><a href="#Select.ctas-2598"><span class="linenos">2598</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-2599"><a href="#Select.ctas-2599"><span class="linenos">2599</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
-</span><span id="Select.ctas-2600"><a href="#Select.ctas-2600"><span class="linenos">2600</span></a>
-</span><span id="Select.ctas-2601"><a href="#Select.ctas-2601"><span class="linenos">2601</span></a><span class="sd"> Args:</span>
-</span><span id="Select.ctas-2602"><a href="#Select.ctas-2602"><span class="linenos">2602</span></a><span class="sd"> table (str | Expression): the SQL code string to parse as the table name.</span>
-</span><span id="Select.ctas-2603"><a href="#Select.ctas-2603"><span class="linenos">2603</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.ctas-2604"><a href="#Select.ctas-2604"><span class="linenos">2604</span></a><span class="sd"> properties (dict): an optional mapping of table properties</span>
-</span><span id="Select.ctas-2605"><a href="#Select.ctas-2605"><span class="linenos">2605</span></a><span class="sd"> dialect (str): the dialect used to parse the input table.</span>
-</span><span id="Select.ctas-2606"><a href="#Select.ctas-2606"><span class="linenos">2606</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.ctas-2607"><a href="#Select.ctas-2607"><span class="linenos">2607</span></a><span class="sd"> opts (kwargs): other options to use to parse the input table.</span>
-</span><span id="Select.ctas-2608"><a href="#Select.ctas-2608"><span class="linenos">2608</span></a>
-</span><span id="Select.ctas-2609"><a href="#Select.ctas-2609"><span class="linenos">2609</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.ctas-2610"><a href="#Select.ctas-2610"><span class="linenos">2610</span></a><span class="sd"> Create: the CREATE TABLE AS expression</span>
-</span><span id="Select.ctas-2611"><a href="#Select.ctas-2611"><span class="linenos">2611</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.ctas-2612"><a href="#Select.ctas-2612"><span class="linenos">2612</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-2613"><a href="#Select.ctas-2613"><span class="linenos">2613</span></a> <span class="n">table_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="Select.ctas-2614"><a href="#Select.ctas-2614"><span class="linenos">2614</span></a> <span class="n">table</span><span class="p">,</span>
-</span><span id="Select.ctas-2615"><a href="#Select.ctas-2615"><span class="linenos">2615</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
-</span><span id="Select.ctas-2616"><a href="#Select.ctas-2616"><span class="linenos">2616</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.ctas-2617"><a href="#Select.ctas-2617"><span class="linenos">2617</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.ctas-2618"><a href="#Select.ctas-2618"><span class="linenos">2618</span></a> <span class="p">)</span>
-</span><span id="Select.ctas-2619"><a href="#Select.ctas-2619"><span class="linenos">2619</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Select.ctas-2620"><a href="#Select.ctas-2620"><span class="linenos">2620</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
-</span><span id="Select.ctas-2621"><a href="#Select.ctas-2621"><span class="linenos">2621</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-2622"><a href="#Select.ctas-2622"><span class="linenos">2622</span></a>
-</span><span id="Select.ctas-2623"><a href="#Select.ctas-2623"><span class="linenos">2623</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
-</span><span id="Select.ctas-2624"><a href="#Select.ctas-2624"><span class="linenos">2624</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-2625"><a href="#Select.ctas-2625"><span class="linenos">2625</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-2626"><a href="#Select.ctas-2626"><span class="linenos">2626</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-2627"><a href="#Select.ctas-2627"><span class="linenos">2627</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-2628"><a href="#Select.ctas-2628"><span class="linenos">2628</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.ctas-2633"><a href="#Select.ctas-2633"><span class="linenos">2633</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</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">Create</span><span class="p">:</span>
+</span><span id="Select.ctas-2634"><a href="#Select.ctas-2634"><span class="linenos">2634</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.ctas-2635"><a href="#Select.ctas-2635"><span class="linenos">2635</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
+</span><span id="Select.ctas-2636"><a href="#Select.ctas-2636"><span class="linenos">2636</span></a>
+</span><span id="Select.ctas-2637"><a href="#Select.ctas-2637"><span class="linenos">2637</span></a><span class="sd"> Example:</span>
+</span><span id="Select.ctas-2638"><a href="#Select.ctas-2638"><span class="linenos">2638</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-2639"><a href="#Select.ctas-2639"><span class="linenos">2639</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
+</span><span id="Select.ctas-2640"><a href="#Select.ctas-2640"><span class="linenos">2640</span></a>
+</span><span id="Select.ctas-2641"><a href="#Select.ctas-2641"><span class="linenos">2641</span></a><span class="sd"> Args:</span>
+</span><span id="Select.ctas-2642"><a href="#Select.ctas-2642"><span class="linenos">2642</span></a><span class="sd"> table (str | Expression): the SQL code string to parse as the table name.</span>
+</span><span id="Select.ctas-2643"><a href="#Select.ctas-2643"><span class="linenos">2643</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.ctas-2644"><a href="#Select.ctas-2644"><span class="linenos">2644</span></a><span class="sd"> properties (dict): an optional mapping of table properties</span>
+</span><span id="Select.ctas-2645"><a href="#Select.ctas-2645"><span class="linenos">2645</span></a><span class="sd"> dialect (str): the dialect used to parse the input table.</span>
+</span><span id="Select.ctas-2646"><a href="#Select.ctas-2646"><span class="linenos">2646</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.ctas-2647"><a href="#Select.ctas-2647"><span class="linenos">2647</span></a><span class="sd"> opts (kwargs): other options to use to parse the input table.</span>
+</span><span id="Select.ctas-2648"><a href="#Select.ctas-2648"><span class="linenos">2648</span></a>
+</span><span id="Select.ctas-2649"><a href="#Select.ctas-2649"><span class="linenos">2649</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.ctas-2650"><a href="#Select.ctas-2650"><span class="linenos">2650</span></a><span class="sd"> Create: the CREATE TABLE AS expression</span>
+</span><span id="Select.ctas-2651"><a href="#Select.ctas-2651"><span class="linenos">2651</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.ctas-2652"><a href="#Select.ctas-2652"><span class="linenos">2652</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-2653"><a href="#Select.ctas-2653"><span class="linenos">2653</span></a> <span class="n">table_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="Select.ctas-2654"><a href="#Select.ctas-2654"><span class="linenos">2654</span></a> <span class="n">table</span><span class="p">,</span>
+</span><span id="Select.ctas-2655"><a href="#Select.ctas-2655"><span class="linenos">2655</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
+</span><span id="Select.ctas-2656"><a href="#Select.ctas-2656"><span class="linenos">2656</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select.ctas-2657"><a href="#Select.ctas-2657"><span class="linenos">2657</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.ctas-2658"><a href="#Select.ctas-2658"><span class="linenos">2658</span></a> <span class="p">)</span>
+</span><span id="Select.ctas-2659"><a href="#Select.ctas-2659"><span class="linenos">2659</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Select.ctas-2660"><a href="#Select.ctas-2660"><span class="linenos">2660</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
+</span><span id="Select.ctas-2661"><a href="#Select.ctas-2661"><span class="linenos">2661</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-2662"><a href="#Select.ctas-2662"><span class="linenos">2662</span></a>
+</span><span id="Select.ctas-2663"><a href="#Select.ctas-2663"><span class="linenos">2663</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
+</span><span id="Select.ctas-2664"><a href="#Select.ctas-2664"><span class="linenos">2664</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-2665"><a href="#Select.ctas-2665"><span class="linenos">2665</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-2666"><a href="#Select.ctas-2666"><span class="linenos">2666</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-2667"><a href="#Select.ctas-2667"><span class="linenos">2667</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-2668"><a href="#Select.ctas-2668"><span class="linenos">2668</span></a> <span class="p">)</span>
</span></pre></div>
@@ -23582,29 +24079,29 @@ 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-2630"><a href="#Select.lock-2630"><span class="linenos">2630</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-2631"><a href="#Select.lock-2631"><span class="linenos">2631</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.lock-2632"><a href="#Select.lock-2632"><span class="linenos">2632</span></a><span class="sd"> Set the locking read mode for this expression.</span>
-</span><span id="Select.lock-2633"><a href="#Select.lock-2633"><span class="linenos">2633</span></a>
-</span><span id="Select.lock-2634"><a href="#Select.lock-2634"><span class="linenos">2634</span></a><span class="sd"> Examples:</span>
-</span><span id="Select.lock-2635"><a href="#Select.lock-2635"><span class="linenos">2635</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-2636"><a href="#Select.lock-2636"><span class="linenos">2636</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
-</span><span id="Select.lock-2637"><a href="#Select.lock-2637"><span class="linenos">2637</span></a>
-</span><span id="Select.lock-2638"><a href="#Select.lock-2638"><span class="linenos">2638</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-2639"><a href="#Select.lock-2639"><span class="linenos">2639</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
-</span><span id="Select.lock-2640"><a href="#Select.lock-2640"><span class="linenos">2640</span></a>
-</span><span id="Select.lock-2641"><a href="#Select.lock-2641"><span class="linenos">2641</span></a><span class="sd"> Args:</span>
-</span><span id="Select.lock-2642"><a href="#Select.lock-2642"><span class="linenos">2642</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-2643"><a href="#Select.lock-2643"><span class="linenos">2643</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.lock-2644"><a href="#Select.lock-2644"><span class="linenos">2644</span></a>
-</span><span id="Select.lock-2645"><a href="#Select.lock-2645"><span class="linenos">2645</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.lock-2646"><a href="#Select.lock-2646"><span class="linenos">2646</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Select.lock-2647"><a href="#Select.lock-2647"><span class="linenos">2647</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.lock-2648"><a href="#Select.lock-2648"><span class="linenos">2648</span></a>
-</span><span id="Select.lock-2649"><a href="#Select.lock-2649"><span class="linenos">2649</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-2650"><a href="#Select.lock-2650"><span class="linenos">2650</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;lock&quot;</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-2651"><a href="#Select.lock-2651"><span class="linenos">2651</span></a>
-</span><span id="Select.lock-2652"><a href="#Select.lock-2652"><span class="linenos">2652</span></a> <span class="k">return</span> <span class="n">inst</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lock-2670"><a href="#Select.lock-2670"><span class="linenos">2670</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-2671"><a href="#Select.lock-2671"><span class="linenos">2671</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.lock-2672"><a href="#Select.lock-2672"><span class="linenos">2672</span></a><span class="sd"> Set the locking read mode for this expression.</span>
+</span><span id="Select.lock-2673"><a href="#Select.lock-2673"><span class="linenos">2673</span></a>
+</span><span id="Select.lock-2674"><a href="#Select.lock-2674"><span class="linenos">2674</span></a><span class="sd"> Examples:</span>
+</span><span id="Select.lock-2675"><a href="#Select.lock-2675"><span class="linenos">2675</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-2676"><a href="#Select.lock-2676"><span class="linenos">2676</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
+</span><span id="Select.lock-2677"><a href="#Select.lock-2677"><span class="linenos">2677</span></a>
+</span><span id="Select.lock-2678"><a href="#Select.lock-2678"><span class="linenos">2678</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-2679"><a href="#Select.lock-2679"><span class="linenos">2679</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
+</span><span id="Select.lock-2680"><a href="#Select.lock-2680"><span class="linenos">2680</span></a>
+</span><span id="Select.lock-2681"><a href="#Select.lock-2681"><span class="linenos">2681</span></a><span class="sd"> Args:</span>
+</span><span id="Select.lock-2682"><a href="#Select.lock-2682"><span class="linenos">2682</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-2683"><a href="#Select.lock-2683"><span class="linenos">2683</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.lock-2684"><a href="#Select.lock-2684"><span class="linenos">2684</span></a>
+</span><span id="Select.lock-2685"><a href="#Select.lock-2685"><span class="linenos">2685</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.lock-2686"><a href="#Select.lock-2686"><span class="linenos">2686</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Select.lock-2687"><a href="#Select.lock-2687"><span class="linenos">2687</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.lock-2688"><a href="#Select.lock-2688"><span class="linenos">2688</span></a>
+</span><span id="Select.lock-2689"><a href="#Select.lock-2689"><span class="linenos">2689</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-2690"><a href="#Select.lock-2690"><span class="linenos">2690</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;lock&quot;</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-2691"><a href="#Select.lock-2691"><span class="linenos">2691</span></a>
+</span><span id="Select.lock-2692"><a href="#Select.lock-2692"><span class="linenos">2692</span></a> <span class="k">return</span> <span class="n">inst</span>
</span></pre></div>
@@ -23722,30 +24219,30 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Subquery"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery-2667"><a href="#Subquery-2667"><span class="linenos">2667</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">Unionable</span><span class="p">):</span>
-</span><span id="Subquery-2668"><a href="#Subquery-2668"><span class="linenos">2668</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Subquery-2669"><a href="#Subquery-2669"><span class="linenos">2669</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-2670"><a href="#Subquery-2670"><span class="linenos">2670</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-2671"><a href="#Subquery-2671"><span class="linenos">2671</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-2672"><a href="#Subquery-2672"><span class="linenos">2672</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="Subquery-2673"><a href="#Subquery-2673"><span class="linenos">2673</span></a> <span class="p">}</span>
-</span><span id="Subquery-2674"><a href="#Subquery-2674"><span class="linenos">2674</span></a>
-</span><span id="Subquery-2675"><a href="#Subquery-2675"><span class="linenos">2675</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-2676"><a href="#Subquery-2676"><span class="linenos">2676</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subquery-2677"><a href="#Subquery-2677"><span class="linenos">2677</span></a><span class="sd"> Returns the first non subquery.</span>
-</span><span id="Subquery-2678"><a href="#Subquery-2678"><span class="linenos">2678</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subquery-2679"><a href="#Subquery-2679"><span class="linenos">2679</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Subquery-2680"><a href="#Subquery-2680"><span class="linenos">2680</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-2681"><a href="#Subquery-2681"><span class="linenos">2681</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-2682"><a href="#Subquery-2682"><span class="linenos">2682</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Subquery-2683"><a href="#Subquery-2683"><span class="linenos">2683</span></a>
-</span><span id="Subquery-2684"><a href="#Subquery-2684"><span class="linenos">2684</span></a> <span class="nd">@property</span>
-</span><span id="Subquery-2685"><a href="#Subquery-2685"><span class="linenos">2685</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-2686"><a href="#Subquery-2686"><span class="linenos">2686</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-2687"><a href="#Subquery-2687"><span class="linenos">2687</span></a>
-</span><span id="Subquery-2688"><a href="#Subquery-2688"><span class="linenos">2688</span></a> <span class="nd">@property</span>
-</span><span id="Subquery-2689"><a href="#Subquery-2689"><span class="linenos">2689</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Subquery-2690"><a href="#Subquery-2690"><span class="linenos">2690</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-2707"><a href="#Subquery-2707"><span class="linenos">2707</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">Unionable</span><span class="p">):</span>
+</span><span id="Subquery-2708"><a href="#Subquery-2708"><span class="linenos">2708</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Subquery-2709"><a href="#Subquery-2709"><span class="linenos">2709</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-2710"><a href="#Subquery-2710"><span class="linenos">2710</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-2711"><a href="#Subquery-2711"><span class="linenos">2711</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-2712"><a href="#Subquery-2712"><span class="linenos">2712</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="Subquery-2713"><a href="#Subquery-2713"><span class="linenos">2713</span></a> <span class="p">}</span>
+</span><span id="Subquery-2714"><a href="#Subquery-2714"><span class="linenos">2714</span></a>
+</span><span id="Subquery-2715"><a href="#Subquery-2715"><span class="linenos">2715</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-2716"><a href="#Subquery-2716"><span class="linenos">2716</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subquery-2717"><a href="#Subquery-2717"><span class="linenos">2717</span></a><span class="sd"> Returns the first non subquery.</span>
+</span><span id="Subquery-2718"><a href="#Subquery-2718"><span class="linenos">2718</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subquery-2719"><a href="#Subquery-2719"><span class="linenos">2719</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Subquery-2720"><a href="#Subquery-2720"><span class="linenos">2720</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-2721"><a href="#Subquery-2721"><span class="linenos">2721</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-2722"><a href="#Subquery-2722"><span class="linenos">2722</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Subquery-2723"><a href="#Subquery-2723"><span class="linenos">2723</span></a>
+</span><span id="Subquery-2724"><a href="#Subquery-2724"><span class="linenos">2724</span></a> <span class="nd">@property</span>
+</span><span id="Subquery-2725"><a href="#Subquery-2725"><span class="linenos">2725</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-2726"><a href="#Subquery-2726"><span class="linenos">2726</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-2727"><a href="#Subquery-2727"><span class="linenos">2727</span></a>
+</span><span id="Subquery-2728"><a href="#Subquery-2728"><span class="linenos">2728</span></a> <span class="nd">@property</span>
+</span><span id="Subquery-2729"><a href="#Subquery-2729"><span class="linenos">2729</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Subquery-2730"><a href="#Subquery-2730"><span class="linenos">2730</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span></pre></div>
@@ -23762,14 +24259,14 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Subquery.unnest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.unnest-2675"><a href="#Subquery.unnest-2675"><span class="linenos">2675</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-2676"><a href="#Subquery.unnest-2676"><span class="linenos">2676</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subquery.unnest-2677"><a href="#Subquery.unnest-2677"><span class="linenos">2677</span></a><span class="sd"> Returns the first non subquery.</span>
-</span><span id="Subquery.unnest-2678"><a href="#Subquery.unnest-2678"><span class="linenos">2678</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subquery.unnest-2679"><a href="#Subquery.unnest-2679"><span class="linenos">2679</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Subquery.unnest-2680"><a href="#Subquery.unnest-2680"><span class="linenos">2680</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-2681"><a href="#Subquery.unnest-2681"><span class="linenos">2681</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-2682"><a href="#Subquery.unnest-2682"><span class="linenos">2682</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.unnest-2715"><a href="#Subquery.unnest-2715"><span class="linenos">2715</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-2716"><a href="#Subquery.unnest-2716"><span class="linenos">2716</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subquery.unnest-2717"><a href="#Subquery.unnest-2717"><span class="linenos">2717</span></a><span class="sd"> Returns the first non subquery.</span>
+</span><span id="Subquery.unnest-2718"><a href="#Subquery.unnest-2718"><span class="linenos">2718</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subquery.unnest-2719"><a href="#Subquery.unnest-2719"><span class="linenos">2719</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Subquery.unnest-2720"><a href="#Subquery.unnest-2720"><span class="linenos">2720</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-2721"><a href="#Subquery.unnest-2721"><span class="linenos">2721</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-2722"><a href="#Subquery.unnest-2722"><span class="linenos">2722</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -23881,19 +24378,19 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#TableSample"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TableSample-2693"><a href="#TableSample-2693"><span class="linenos">2693</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-2694"><a href="#TableSample-2694"><span class="linenos">2694</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="TableSample-2695"><a href="#TableSample-2695"><span class="linenos">2695</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-2696"><a href="#TableSample-2696"><span class="linenos">2696</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-2697"><a href="#TableSample-2697"><span class="linenos">2697</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-2698"><a href="#TableSample-2698"><span class="linenos">2698</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-2699"><a href="#TableSample-2699"><span class="linenos">2699</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-2700"><a href="#TableSample-2700"><span class="linenos">2700</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-2701"><a href="#TableSample-2701"><span class="linenos">2701</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-2702"><a href="#TableSample-2702"><span class="linenos">2702</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-2703"><a href="#TableSample-2703"><span class="linenos">2703</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-2704"><a href="#TableSample-2704"><span class="linenos">2704</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="TableSample-2705"><a href="#TableSample-2705"><span class="linenos">2705</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TableSample-2733"><a href="#TableSample-2733"><span class="linenos">2733</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-2734"><a href="#TableSample-2734"><span class="linenos">2734</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TableSample-2735"><a href="#TableSample-2735"><span class="linenos">2735</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-2736"><a href="#TableSample-2736"><span class="linenos">2736</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-2737"><a href="#TableSample-2737"><span class="linenos">2737</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-2738"><a href="#TableSample-2738"><span class="linenos">2738</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-2739"><a href="#TableSample-2739"><span class="linenos">2739</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-2740"><a href="#TableSample-2740"><span class="linenos">2740</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-2741"><a href="#TableSample-2741"><span class="linenos">2741</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-2742"><a href="#TableSample-2742"><span class="linenos">2742</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-2743"><a href="#TableSample-2743"><span class="linenos">2743</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-2744"><a href="#TableSample-2744"><span class="linenos">2744</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="TableSample-2745"><a href="#TableSample-2745"><span class="linenos">2745</span></a> <span class="p">}</span>
</span></pre></div>
@@ -23956,14 +24453,14 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Tag"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Tag-2708"><a href="#Tag-2708"><span class="linenos">2708</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-2709"><a href="#Tag-2709"><span class="linenos">2709</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-2710"><a href="#Tag-2710"><span class="linenos">2710</span></a>
-</span><span id="Tag-2711"><a href="#Tag-2711"><span class="linenos">2711</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Tag-2712"><a href="#Tag-2712"><span class="linenos">2712</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-2713"><a href="#Tag-2713"><span class="linenos">2713</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-2714"><a href="#Tag-2714"><span class="linenos">2714</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-2715"><a href="#Tag-2715"><span class="linenos">2715</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Tag-2748"><a href="#Tag-2748"><span class="linenos">2748</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-2749"><a href="#Tag-2749"><span class="linenos">2749</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-2750"><a href="#Tag-2750"><span class="linenos">2750</span></a>
+</span><span id="Tag-2751"><a href="#Tag-2751"><span class="linenos">2751</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Tag-2752"><a href="#Tag-2752"><span class="linenos">2752</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-2753"><a href="#Tag-2753"><span class="linenos">2753</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-2754"><a href="#Tag-2754"><span class="linenos">2754</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-2755"><a href="#Tag-2755"><span class="linenos">2755</span></a> <span class="p">}</span>
</span></pre></div>
@@ -24028,14 +24525,15 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Pivot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Pivot-2718"><a href="#Pivot-2718"><span class="linenos">2718</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-2719"><a href="#Pivot-2719"><span class="linenos">2719</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Pivot-2720"><a href="#Pivot-2720"><span class="linenos">2720</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-2721"><a href="#Pivot-2721"><span class="linenos">2721</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-2722"><a href="#Pivot-2722"><span class="linenos">2722</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="Pivot-2723"><a href="#Pivot-2723"><span class="linenos">2723</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Pivot-2724"><a href="#Pivot-2724"><span class="linenos">2724</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Pivot-2725"><a href="#Pivot-2725"><span class="linenos">2725</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Pivot-2758"><a href="#Pivot-2758"><span class="linenos">2758</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-2759"><a href="#Pivot-2759"><span class="linenos">2759</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Pivot-2760"><a href="#Pivot-2760"><span class="linenos">2760</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-2761"><a href="#Pivot-2761"><span class="linenos">2761</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-2762"><a href="#Pivot-2762"><span class="linenos">2762</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="Pivot-2763"><a href="#Pivot-2763"><span class="linenos">2763</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Pivot-2764"><a href="#Pivot-2764"><span class="linenos">2764</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Pivot-2765"><a href="#Pivot-2765"><span class="linenos">2765</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-2766"><a href="#Pivot-2766"><span class="linenos">2766</span></a> <span class="p">}</span>
</span></pre></div>
@@ -24098,14 +24596,14 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Window"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Window-2728"><a href="#Window-2728"><span class="linenos">2728</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Window-2729"><a href="#Window-2729"><span class="linenos">2729</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Window-2730"><a href="#Window-2730"><span class="linenos">2730</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-2731"><a href="#Window-2731"><span class="linenos">2731</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-2732"><a href="#Window-2732"><span class="linenos">2732</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-2733"><a href="#Window-2733"><span class="linenos">2733</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-2734"><a href="#Window-2734"><span class="linenos">2734</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-2735"><a href="#Window-2735"><span class="linenos">2735</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Window-2769"><a href="#Window-2769"><span class="linenos">2769</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Window-2770"><a href="#Window-2770"><span class="linenos">2770</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Window-2771"><a href="#Window-2771"><span class="linenos">2771</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-2772"><a href="#Window-2772"><span class="linenos">2772</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-2773"><a href="#Window-2773"><span class="linenos">2773</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-2774"><a href="#Window-2774"><span class="linenos">2774</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-2775"><a href="#Window-2775"><span class="linenos">2775</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-2776"><a href="#Window-2776"><span class="linenos">2776</span></a> <span class="p">}</span>
</span></pre></div>
@@ -24168,14 +24666,14 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#WindowSpec"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WindowSpec-2738"><a href="#WindowSpec-2738"><span class="linenos">2738</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-2739"><a href="#WindowSpec-2739"><span class="linenos">2739</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="WindowSpec-2740"><a href="#WindowSpec-2740"><span class="linenos">2740</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-2741"><a href="#WindowSpec-2741"><span class="linenos">2741</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-2742"><a href="#WindowSpec-2742"><span class="linenos">2742</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-2743"><a href="#WindowSpec-2743"><span class="linenos">2743</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-2744"><a href="#WindowSpec-2744"><span class="linenos">2744</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-2745"><a href="#WindowSpec-2745"><span class="linenos">2745</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="WindowSpec-2779"><a href="#WindowSpec-2779"><span class="linenos">2779</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-2780"><a href="#WindowSpec-2780"><span class="linenos">2780</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="WindowSpec-2781"><a href="#WindowSpec-2781"><span class="linenos">2781</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-2782"><a href="#WindowSpec-2782"><span class="linenos">2782</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-2783"><a href="#WindowSpec-2783"><span class="linenos">2783</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-2784"><a href="#WindowSpec-2784"><span class="linenos">2784</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-2785"><a href="#WindowSpec-2785"><span class="linenos">2785</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-2786"><a href="#WindowSpec-2786"><span class="linenos">2786</span></a> <span class="p">}</span>
</span></pre></div>
@@ -24238,8 +24736,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Where"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Where-2748"><a href="#Where-2748"><span class="linenos">2748</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-2749"><a href="#Where-2749"><span class="linenos">2749</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Where-2789"><a href="#Where-2789"><span class="linenos">2789</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-2790"><a href="#Where-2790"><span class="linenos">2790</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -24302,16 +24800,16 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Star"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Star-2752"><a href="#Star-2752"><span class="linenos">2752</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-2753"><a href="#Star-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;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-2754"><a href="#Star-2754"><span class="linenos">2754</span></a>
-</span><span id="Star-2755"><a href="#Star-2755"><span class="linenos">2755</span></a> <span class="nd">@property</span>
-</span><span id="Star-2756"><a href="#Star-2756"><span class="linenos">2756</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-2757"><a href="#Star-2757"><span class="linenos">2757</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
-</span><span id="Star-2758"><a href="#Star-2758"><span class="linenos">2758</span></a>
-</span><span id="Star-2759"><a href="#Star-2759"><span class="linenos">2759</span></a> <span class="nd">@property</span>
-</span><span id="Star-2760"><a href="#Star-2760"><span class="linenos">2760</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Star-2761"><a href="#Star-2761"><span class="linenos">2761</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-2793"><a href="#Star-2793"><span class="linenos">2793</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-2794"><a href="#Star-2794"><span class="linenos">2794</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-2795"><a href="#Star-2795"><span class="linenos">2795</span></a>
+</span><span id="Star-2796"><a href="#Star-2796"><span class="linenos">2796</span></a> <span class="nd">@property</span>
+</span><span id="Star-2797"><a href="#Star-2797"><span class="linenos">2797</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-2798"><a href="#Star-2798"><span class="linenos">2798</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
+</span><span id="Star-2799"><a href="#Star-2799"><span class="linenos">2799</span></a>
+</span><span id="Star-2800"><a href="#Star-2800"><span class="linenos">2800</span></a> <span class="nd">@property</span>
+</span><span id="Star-2801"><a href="#Star-2801"><span class="linenos">2801</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Star-2802"><a href="#Star-2802"><span class="linenos">2802</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -24403,8 +24901,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Parameter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Parameter-2764"><a href="#Parameter-2764"><span class="linenos">2764</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Parameter-2765"><a href="#Parameter-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 class="s2">&quot;wrapped&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-2805"><a href="#Parameter-2805"><span class="linenos">2805</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Parameter-2806"><a href="#Parameter-2806"><span class="linenos">2806</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;wrapped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -24467,8 +24965,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#SessionParameter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SessionParameter-2768"><a href="#SessionParameter-2768"><span class="linenos">2768</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="SessionParameter-2769"><a href="#SessionParameter-2769"><span class="linenos">2769</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2809"><a href="#SessionParameter-2809"><span class="linenos">2809</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="SessionParameter-2810"><a href="#SessionParameter-2810"><span class="linenos">2810</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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>
@@ -24531,8 +25029,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Placeholder"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Placeholder-2772"><a href="#Placeholder-2772"><span class="linenos">2772</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Placeholder-2773"><a href="#Placeholder-2773"><span class="linenos">2773</span></a> <span class="n">arg_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="Placeholder-2813"><a href="#Placeholder-2813"><span class="linenos">2813</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Placeholder-2814"><a href="#Placeholder-2814"><span class="linenos">2814</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -24595,12 +25093,12 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Null"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Null-2776"><a href="#Null-2776"><span class="linenos">2776</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-2777"><a href="#Null-2777"><span class="linenos">2777</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-2778"><a href="#Null-2778"><span class="linenos">2778</span></a>
-</span><span id="Null-2779"><a href="#Null-2779"><span class="linenos">2779</span></a> <span class="nd">@property</span>
-</span><span id="Null-2780"><a href="#Null-2780"><span class="linenos">2780</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-2781"><a href="#Null-2781"><span class="linenos">2781</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-2817"><a href="#Null-2817"><span class="linenos">2817</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-2818"><a href="#Null-2818"><span class="linenos">2818</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-2819"><a href="#Null-2819"><span class="linenos">2819</span></a>
+</span><span id="Null-2820"><a href="#Null-2820"><span class="linenos">2820</span></a> <span class="nd">@property</span>
+</span><span id="Null-2821"><a href="#Null-2821"><span class="linenos">2821</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-2822"><a href="#Null-2822"><span class="linenos">2822</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
</span></pre></div>
@@ -24669,8 +25167,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Boolean"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Boolean-2784"><a href="#Boolean-2784"><span class="linenos">2784</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-2785"><a href="#Boolean-2785"><span class="linenos">2785</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Boolean-2825"><a href="#Boolean-2825"><span class="linenos">2825</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-2826"><a href="#Boolean-2826"><span class="linenos">2826</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -24739,127 +25237,128 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DataType"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType-2788"><a href="#DataType-2788"><span class="linenos">2788</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-2789"><a href="#DataType-2789"><span class="linenos">2789</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-2790"><a href="#DataType-2790"><span class="linenos">2790</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-2791"><a href="#DataType-2791"><span class="linenos">2791</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-2792"><a href="#DataType-2792"><span class="linenos">2792</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-2793"><a href="#DataType-2793"><span class="linenos">2793</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-2794"><a href="#DataType-2794"><span class="linenos">2794</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-2795"><a href="#DataType-2795"><span class="linenos">2795</span></a> <span class="p">}</span>
-</span><span id="DataType-2796"><a href="#DataType-2796"><span class="linenos">2796</span></a>
-</span><span id="DataType-2797"><a href="#DataType-2797"><span class="linenos">2797</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-2798"><a href="#DataType-2798"><span class="linenos">2798</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2799"><a href="#DataType-2799"><span class="linenos">2799</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2800"><a href="#DataType-2800"><span class="linenos">2800</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2801"><a href="#DataType-2801"><span class="linenos">2801</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2802"><a href="#DataType-2802"><span class="linenos">2802</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2803"><a href="#DataType-2803"><span class="linenos">2803</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2804"><a href="#DataType-2804"><span class="linenos">2804</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2805"><a href="#DataType-2805"><span class="linenos">2805</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2806"><a href="#DataType-2806"><span class="linenos">2806</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2807"><a href="#DataType-2807"><span class="linenos">2807</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2808"><a href="#DataType-2808"><span class="linenos">2808</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2809"><a href="#DataType-2809"><span class="linenos">2809</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2810"><a href="#DataType-2810"><span class="linenos">2810</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2811"><a href="#DataType-2811"><span class="linenos">2811</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2812"><a href="#DataType-2812"><span class="linenos">2812</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2813"><a href="#DataType-2813"><span class="linenos">2813</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2814"><a href="#DataType-2814"><span class="linenos">2814</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2815"><a href="#DataType-2815"><span class="linenos">2815</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2816"><a href="#DataType-2816"><span class="linenos">2816</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2817"><a href="#DataType-2817"><span class="linenos">2817</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2818"><a href="#DataType-2818"><span class="linenos">2818</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2819"><a href="#DataType-2819"><span class="linenos">2819</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2820"><a href="#DataType-2820"><span class="linenos">2820</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2821"><a href="#DataType-2821"><span class="linenos">2821</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2822"><a href="#DataType-2822"><span class="linenos">2822</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2823"><a href="#DataType-2823"><span class="linenos">2823</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2824"><a href="#DataType-2824"><span class="linenos">2824</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2825"><a href="#DataType-2825"><span class="linenos">2825</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2826"><a href="#DataType-2826"><span class="linenos">2826</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2827"><a href="#DataType-2827"><span class="linenos">2827</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2828"><a href="#DataType-2828"><span class="linenos">2828</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2829"><a href="#DataType-2829"><span class="linenos">2829</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2830"><a href="#DataType-2830"><span class="linenos">2830</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2831"><a href="#DataType-2831"><span class="linenos">2831</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2832"><a href="#DataType-2832"><span class="linenos">2832</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2833"><a href="#DataType-2833"><span class="linenos">2833</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2834"><a href="#DataType-2834"><span class="linenos">2834</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2835"><a href="#DataType-2835"><span class="linenos">2835</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2836"><a href="#DataType-2836"><span class="linenos">2836</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2837"><a href="#DataType-2837"><span class="linenos">2837</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2838"><a href="#DataType-2838"><span class="linenos">2838</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2839"><a href="#DataType-2839"><span class="linenos">2839</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2840"><a href="#DataType-2840"><span class="linenos">2840</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2841"><a href="#DataType-2841"><span class="linenos">2841</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2842"><a href="#DataType-2842"><span class="linenos">2842</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2843"><a href="#DataType-2843"><span class="linenos">2843</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2844"><a href="#DataType-2844"><span class="linenos">2844</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2845"><a href="#DataType-2845"><span class="linenos">2845</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2846"><a href="#DataType-2846"><span class="linenos">2846</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2847"><a href="#DataType-2847"><span class="linenos">2847</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2848"><a href="#DataType-2848"><span class="linenos">2848</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2849"><a href="#DataType-2849"><span class="linenos">2849</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2850"><a href="#DataType-2850"><span class="linenos">2850</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2851"><a href="#DataType-2851"><span class="linenos">2851</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2852"><a href="#DataType-2852"><span class="linenos">2852</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2853"><a href="#DataType-2853"><span class="linenos">2853</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2854"><a href="#DataType-2854"><span class="linenos">2854</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-2855"><a href="#DataType-2855"><span class="linenos">2855</span></a>
-</span><span id="DataType-2856"><a href="#DataType-2856"><span class="linenos">2856</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-2857"><a href="#DataType-2857"><span class="linenos">2857</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
-</span><span id="DataType-2858"><a href="#DataType-2858"><span class="linenos">2858</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
-</span><span id="DataType-2859"><a href="#DataType-2859"><span class="linenos">2859</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
-</span><span id="DataType-2860"><a href="#DataType-2860"><span class="linenos">2860</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
-</span><span id="DataType-2861"><a href="#DataType-2861"><span class="linenos">2861</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
-</span><span id="DataType-2862"><a href="#DataType-2862"><span class="linenos">2862</span></a> <span class="p">}</span>
-</span><span id="DataType-2863"><a href="#DataType-2863"><span class="linenos">2863</span></a>
-</span><span id="DataType-2864"><a href="#DataType-2864"><span class="linenos">2864</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-2865"><a href="#DataType-2865"><span class="linenos">2865</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
-</span><span id="DataType-2866"><a href="#DataType-2866"><span class="linenos">2866</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
-</span><span id="DataType-2867"><a href="#DataType-2867"><span class="linenos">2867</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
-</span><span id="DataType-2868"><a href="#DataType-2868"><span class="linenos">2868</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
-</span><span id="DataType-2869"><a href="#DataType-2869"><span class="linenos">2869</span></a> <span class="p">}</span>
-</span><span id="DataType-2870"><a href="#DataType-2870"><span class="linenos">2870</span></a>
-</span><span id="DataType-2871"><a href="#DataType-2871"><span class="linenos">2871</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-2872"><a href="#DataType-2872"><span class="linenos">2872</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
-</span><span id="DataType-2873"><a href="#DataType-2873"><span class="linenos">2873</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
-</span><span id="DataType-2874"><a href="#DataType-2874"><span class="linenos">2874</span></a> <span class="p">}</span>
-</span><span id="DataType-2875"><a href="#DataType-2875"><span class="linenos">2875</span></a>
-</span><span id="DataType-2876"><a href="#DataType-2876"><span class="linenos">2876</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span>
-</span><span id="DataType-2877"><a href="#DataType-2877"><span class="linenos">2877</span></a>
-</span><span id="DataType-2878"><a href="#DataType-2878"><span class="linenos">2878</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-2879"><a href="#DataType-2879"><span class="linenos">2879</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
-</span><span id="DataType-2880"><a href="#DataType-2880"><span class="linenos">2880</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
-</span><span id="DataType-2881"><a href="#DataType-2881"><span class="linenos">2881</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
-</span><span id="DataType-2882"><a href="#DataType-2882"><span class="linenos">2882</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
-</span><span id="DataType-2883"><a href="#DataType-2883"><span class="linenos">2883</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
-</span><span id="DataType-2884"><a href="#DataType-2884"><span class="linenos">2884</span></a> <span class="p">}</span>
-</span><span id="DataType-2885"><a href="#DataType-2885"><span class="linenos">2885</span></a>
-</span><span id="DataType-2886"><a href="#DataType-2886"><span class="linenos">2886</span></a> <span class="nd">@classmethod</span>
-</span><span id="DataType-2887"><a href="#DataType-2887"><span class="linenos">2887</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
-</span><span id="DataType-2888"><a href="#DataType-2888"><span class="linenos">2888</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
-</span><span id="DataType-2889"><a href="#DataType-2889"><span class="linenos">2889</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="DataType-2890"><a href="#DataType-2890"><span class="linenos">2890</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-2891"><a href="#DataType-2891"><span class="linenos">2891</span></a>
-</span><span id="DataType-2892"><a href="#DataType-2892"><span class="linenos">2892</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-2893"><a href="#DataType-2893"><span class="linenos">2893</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
-</span><span id="DataType-2894"><a href="#DataType-2894"><span class="linenos">2894</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
-</span><span id="DataType-2895"><a href="#DataType-2895"><span class="linenos">2895</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType-2896"><a href="#DataType-2896"><span class="linenos">2896</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span>
-</span><span id="DataType-2897"><a href="#DataType-2897"><span class="linenos">2897</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="DataType-2898"><a href="#DataType-2898"><span class="linenos">2898</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="DataType-2899"><a href="#DataType-2899"><span class="linenos">2899</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-2900"><a href="#DataType-2900"><span class="linenos">2900</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-2901"><a href="#DataType-2901"><span class="linenos">2901</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-2902"><a href="#DataType-2902"><span class="linenos">2902</span></a> <span class="k">return</span> <span class="n">dtype</span>
-</span><span id="DataType-2903"><a href="#DataType-2903"><span class="linenos">2903</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType-2904"><a href="#DataType-2904"><span class="linenos">2904</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-2905"><a href="#DataType-2905"><span class="linenos">2905</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-2906"><a href="#DataType-2906"><span class="linenos">2906</span></a>
-</span><span id="DataType-2907"><a href="#DataType-2907"><span class="linenos">2907</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="DataType-2908"><a href="#DataType-2908"><span class="linenos">2908</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataType-2829"><a href="#DataType-2829"><span class="linenos">2829</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-2830"><a href="#DataType-2830"><span class="linenos">2830</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-2831"><a href="#DataType-2831"><span class="linenos">2831</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-2832"><a href="#DataType-2832"><span class="linenos">2832</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-2833"><a href="#DataType-2833"><span class="linenos">2833</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-2834"><a href="#DataType-2834"><span class="linenos">2834</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-2835"><a href="#DataType-2835"><span class="linenos">2835</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-2836"><a href="#DataType-2836"><span class="linenos">2836</span></a> <span class="p">}</span>
+</span><span id="DataType-2837"><a href="#DataType-2837"><span class="linenos">2837</span></a>
+</span><span id="DataType-2838"><a href="#DataType-2838"><span class="linenos">2838</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-2839"><a href="#DataType-2839"><span class="linenos">2839</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2840"><a href="#DataType-2840"><span class="linenos">2840</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2841"><a href="#DataType-2841"><span class="linenos">2841</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2842"><a href="#DataType-2842"><span class="linenos">2842</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2843"><a href="#DataType-2843"><span class="linenos">2843</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2844"><a href="#DataType-2844"><span class="linenos">2844</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2845"><a href="#DataType-2845"><span class="linenos">2845</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2846"><a href="#DataType-2846"><span class="linenos">2846</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2847"><a href="#DataType-2847"><span class="linenos">2847</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2848"><a href="#DataType-2848"><span class="linenos">2848</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2849"><a href="#DataType-2849"><span class="linenos">2849</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2850"><a href="#DataType-2850"><span class="linenos">2850</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2851"><a href="#DataType-2851"><span class="linenos">2851</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2852"><a href="#DataType-2852"><span class="linenos">2852</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2853"><a href="#DataType-2853"><span class="linenos">2853</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2854"><a href="#DataType-2854"><span class="linenos">2854</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2855"><a href="#DataType-2855"><span class="linenos">2855</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2856"><a href="#DataType-2856"><span class="linenos">2856</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2857"><a href="#DataType-2857"><span class="linenos">2857</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2858"><a href="#DataType-2858"><span class="linenos">2858</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2859"><a href="#DataType-2859"><span class="linenos">2859</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2860"><a href="#DataType-2860"><span class="linenos">2860</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2861"><a href="#DataType-2861"><span class="linenos">2861</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2862"><a href="#DataType-2862"><span class="linenos">2862</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2863"><a href="#DataType-2863"><span class="linenos">2863</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2864"><a href="#DataType-2864"><span class="linenos">2864</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2865"><a href="#DataType-2865"><span class="linenos">2865</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2866"><a href="#DataType-2866"><span class="linenos">2866</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2867"><a href="#DataType-2867"><span class="linenos">2867</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2868"><a href="#DataType-2868"><span class="linenos">2868</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2869"><a href="#DataType-2869"><span class="linenos">2869</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2870"><a href="#DataType-2870"><span class="linenos">2870</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2871"><a href="#DataType-2871"><span class="linenos">2871</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2872"><a href="#DataType-2872"><span class="linenos">2872</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2873"><a href="#DataType-2873"><span class="linenos">2873</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2874"><a href="#DataType-2874"><span class="linenos">2874</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2875"><a href="#DataType-2875"><span class="linenos">2875</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2876"><a href="#DataType-2876"><span class="linenos">2876</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2877"><a href="#DataType-2877"><span class="linenos">2877</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2878"><a href="#DataType-2878"><span class="linenos">2878</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2879"><a href="#DataType-2879"><span class="linenos">2879</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2880"><a href="#DataType-2880"><span class="linenos">2880</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2881"><a href="#DataType-2881"><span class="linenos">2881</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2882"><a href="#DataType-2882"><span class="linenos">2882</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2883"><a href="#DataType-2883"><span class="linenos">2883</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2884"><a href="#DataType-2884"><span class="linenos">2884</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2885"><a href="#DataType-2885"><span class="linenos">2885</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2886"><a href="#DataType-2886"><span class="linenos">2886</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2887"><a href="#DataType-2887"><span class="linenos">2887</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2888"><a href="#DataType-2888"><span class="linenos">2888</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2889"><a href="#DataType-2889"><span class="linenos">2889</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2890"><a href="#DataType-2890"><span class="linenos">2890</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2891"><a href="#DataType-2891"><span class="linenos">2891</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2892"><a href="#DataType-2892"><span class="linenos">2892</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2893"><a href="#DataType-2893"><span class="linenos">2893</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2894"><a href="#DataType-2894"><span class="linenos">2894</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2895"><a href="#DataType-2895"><span class="linenos">2895</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2896"><a href="#DataType-2896"><span class="linenos">2896</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-2897"><a href="#DataType-2897"><span class="linenos">2897</span></a>
+</span><span id="DataType-2898"><a href="#DataType-2898"><span class="linenos">2898</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-2899"><a href="#DataType-2899"><span class="linenos">2899</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
+</span><span id="DataType-2900"><a href="#DataType-2900"><span class="linenos">2900</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
+</span><span id="DataType-2901"><a href="#DataType-2901"><span class="linenos">2901</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
+</span><span id="DataType-2902"><a href="#DataType-2902"><span class="linenos">2902</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
+</span><span id="DataType-2903"><a href="#DataType-2903"><span class="linenos">2903</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
+</span><span id="DataType-2904"><a href="#DataType-2904"><span class="linenos">2904</span></a> <span class="p">}</span>
+</span><span id="DataType-2905"><a href="#DataType-2905"><span class="linenos">2905</span></a>
+</span><span id="DataType-2906"><a href="#DataType-2906"><span class="linenos">2906</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-2907"><a href="#DataType-2907"><span class="linenos">2907</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
+</span><span id="DataType-2908"><a href="#DataType-2908"><span class="linenos">2908</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
+</span><span id="DataType-2909"><a href="#DataType-2909"><span class="linenos">2909</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
+</span><span id="DataType-2910"><a href="#DataType-2910"><span class="linenos">2910</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
+</span><span id="DataType-2911"><a href="#DataType-2911"><span class="linenos">2911</span></a> <span class="p">}</span>
+</span><span id="DataType-2912"><a href="#DataType-2912"><span class="linenos">2912</span></a>
+</span><span id="DataType-2913"><a href="#DataType-2913"><span class="linenos">2913</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-2914"><a href="#DataType-2914"><span class="linenos">2914</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
+</span><span id="DataType-2915"><a href="#DataType-2915"><span class="linenos">2915</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
+</span><span id="DataType-2916"><a href="#DataType-2916"><span class="linenos">2916</span></a> <span class="p">}</span>
+</span><span id="DataType-2917"><a href="#DataType-2917"><span class="linenos">2917</span></a>
+</span><span id="DataType-2918"><a href="#DataType-2918"><span class="linenos">2918</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span>
+</span><span id="DataType-2919"><a href="#DataType-2919"><span class="linenos">2919</span></a>
+</span><span id="DataType-2920"><a href="#DataType-2920"><span class="linenos">2920</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-2921"><a href="#DataType-2921"><span class="linenos">2921</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
+</span><span id="DataType-2922"><a href="#DataType-2922"><span class="linenos">2922</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
+</span><span id="DataType-2923"><a href="#DataType-2923"><span class="linenos">2923</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
+</span><span id="DataType-2924"><a href="#DataType-2924"><span class="linenos">2924</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
+</span><span id="DataType-2925"><a href="#DataType-2925"><span class="linenos">2925</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
+</span><span id="DataType-2926"><a href="#DataType-2926"><span class="linenos">2926</span></a> <span class="p">}</span>
+</span><span id="DataType-2927"><a href="#DataType-2927"><span class="linenos">2927</span></a>
+</span><span id="DataType-2928"><a href="#DataType-2928"><span class="linenos">2928</span></a> <span class="nd">@classmethod</span>
+</span><span id="DataType-2929"><a href="#DataType-2929"><span class="linenos">2929</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
+</span><span id="DataType-2930"><a href="#DataType-2930"><span class="linenos">2930</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
+</span><span id="DataType-2931"><a href="#DataType-2931"><span class="linenos">2931</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="DataType-2932"><a href="#DataType-2932"><span class="linenos">2932</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-2933"><a href="#DataType-2933"><span class="linenos">2933</span></a>
+</span><span id="DataType-2934"><a href="#DataType-2934"><span class="linenos">2934</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-2935"><a href="#DataType-2935"><span class="linenos">2935</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
+</span><span id="DataType-2936"><a href="#DataType-2936"><span class="linenos">2936</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
+</span><span id="DataType-2937"><a href="#DataType-2937"><span class="linenos">2937</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType-2938"><a href="#DataType-2938"><span class="linenos">2938</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span>
+</span><span id="DataType-2939"><a href="#DataType-2939"><span class="linenos">2939</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="DataType-2940"><a href="#DataType-2940"><span class="linenos">2940</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="DataType-2941"><a href="#DataType-2941"><span class="linenos">2941</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-2942"><a href="#DataType-2942"><span class="linenos">2942</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-2943"><a href="#DataType-2943"><span class="linenos">2943</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-2944"><a href="#DataType-2944"><span class="linenos">2944</span></a> <span class="k">return</span> <span class="n">dtype</span>
+</span><span id="DataType-2945"><a href="#DataType-2945"><span class="linenos">2945</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType-2946"><a href="#DataType-2946"><span class="linenos">2946</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-2947"><a href="#DataType-2947"><span class="linenos">2947</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-2948"><a href="#DataType-2948"><span class="linenos">2948</span></a>
+</span><span id="DataType-2949"><a href="#DataType-2949"><span class="linenos">2949</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="DataType-2950"><a href="#DataType-2950"><span class="linenos">2950</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
</span></pre></div>
@@ -24877,26 +25376,26 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DataType.build"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.build-2886"><a href="#DataType.build-2886"><span class="linenos">2886</span></a> <span class="nd">@classmethod</span>
-</span><span id="DataType.build-2887"><a href="#DataType.build-2887"><span class="linenos">2887</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
-</span><span id="DataType.build-2888"><a href="#DataType.build-2888"><span class="linenos">2888</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
-</span><span id="DataType.build-2889"><a href="#DataType.build-2889"><span class="linenos">2889</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-2890"><a href="#DataType.build-2890"><span class="linenos">2890</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-2891"><a href="#DataType.build-2891"><span class="linenos">2891</span></a>
-</span><span id="DataType.build-2892"><a href="#DataType.build-2892"><span class="linenos">2892</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-2893"><a href="#DataType.build-2893"><span class="linenos">2893</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
-</span><span id="DataType.build-2894"><a href="#DataType.build-2894"><span class="linenos">2894</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
-</span><span id="DataType.build-2895"><a href="#DataType.build-2895"><span class="linenos">2895</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType.build-2896"><a href="#DataType.build-2896"><span class="linenos">2896</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span>
-</span><span id="DataType.build-2897"><a href="#DataType.build-2897"><span class="linenos">2897</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="DataType.build-2898"><a href="#DataType.build-2898"><span class="linenos">2898</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="DataType.build-2899"><a href="#DataType.build-2899"><span class="linenos">2899</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-2900"><a href="#DataType.build-2900"><span class="linenos">2900</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-2901"><a href="#DataType.build-2901"><span class="linenos">2901</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-2902"><a href="#DataType.build-2902"><span class="linenos">2902</span></a> <span class="k">return</span> <span class="n">dtype</span>
-</span><span id="DataType.build-2903"><a href="#DataType.build-2903"><span class="linenos">2903</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType.build-2904"><a href="#DataType.build-2904"><span class="linenos">2904</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-2905"><a href="#DataType.build-2905"><span class="linenos">2905</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-2928"><a href="#DataType.build-2928"><span class="linenos">2928</span></a> <span class="nd">@classmethod</span>
+</span><span id="DataType.build-2929"><a href="#DataType.build-2929"><span class="linenos">2929</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
+</span><span id="DataType.build-2930"><a href="#DataType.build-2930"><span class="linenos">2930</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
+</span><span id="DataType.build-2931"><a href="#DataType.build-2931"><span class="linenos">2931</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-2932"><a href="#DataType.build-2932"><span class="linenos">2932</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-2933"><a href="#DataType.build-2933"><span class="linenos">2933</span></a>
+</span><span id="DataType.build-2934"><a href="#DataType.build-2934"><span class="linenos">2934</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-2935"><a href="#DataType.build-2935"><span class="linenos">2935</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
+</span><span id="DataType.build-2936"><a href="#DataType.build-2936"><span class="linenos">2936</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
+</span><span id="DataType.build-2937"><a href="#DataType.build-2937"><span class="linenos">2937</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType.build-2938"><a href="#DataType.build-2938"><span class="linenos">2938</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span>
+</span><span id="DataType.build-2939"><a href="#DataType.build-2939"><span class="linenos">2939</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="DataType.build-2940"><a href="#DataType.build-2940"><span class="linenos">2940</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="DataType.build-2941"><a href="#DataType.build-2941"><span class="linenos">2941</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-2942"><a href="#DataType.build-2942"><span class="linenos">2942</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-2943"><a href="#DataType.build-2943"><span class="linenos">2943</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-2944"><a href="#DataType.build-2944"><span class="linenos">2944</span></a> <span class="k">return</span> <span class="n">dtype</span>
+</span><span id="DataType.build-2945"><a href="#DataType.build-2945"><span class="linenos">2945</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType.build-2946"><a href="#DataType.build-2946"><span class="linenos">2946</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-2947"><a href="#DataType.build-2947"><span class="linenos">2947</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>
@@ -24914,8 +25413,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DataType.is_type"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.is_type-2907"><a href="#DataType.is_type-2907"><span class="linenos">2907</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="DataType.is_type-2908"><a href="#DataType.is_type-2908"><span class="linenos">2908</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.is_type-2949"><a href="#DataType.is_type-2949"><span class="linenos">2949</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="DataType.is_type-2950"><a href="#DataType.is_type-2950"><span class="linenos">2950</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
</span></pre></div>
@@ -24979,64 +25478,65 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DataType.Type"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.Type-2797"><a href="#DataType.Type-2797"><span class="linenos">2797</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-2798"><a href="#DataType.Type-2798"><span class="linenos">2798</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-2799"><a href="#DataType.Type-2799"><span class="linenos">2799</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-2800"><a href="#DataType.Type-2800"><span class="linenos">2800</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-2801"><a href="#DataType.Type-2801"><span class="linenos">2801</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-2802"><a href="#DataType.Type-2802"><span class="linenos">2802</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-2803"><a href="#DataType.Type-2803"><span class="linenos">2803</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-2804"><a href="#DataType.Type-2804"><span class="linenos">2804</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-2805"><a href="#DataType.Type-2805"><span class="linenos">2805</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-2806"><a href="#DataType.Type-2806"><span class="linenos">2806</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-2807"><a href="#DataType.Type-2807"><span class="linenos">2807</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-2808"><a href="#DataType.Type-2808"><span class="linenos">2808</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-2809"><a href="#DataType.Type-2809"><span class="linenos">2809</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-2810"><a href="#DataType.Type-2810"><span class="linenos">2810</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-2811"><a href="#DataType.Type-2811"><span class="linenos">2811</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-2812"><a href="#DataType.Type-2812"><span class="linenos">2812</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-2813"><a href="#DataType.Type-2813"><span class="linenos">2813</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-2814"><a href="#DataType.Type-2814"><span class="linenos">2814</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-2815"><a href="#DataType.Type-2815"><span class="linenos">2815</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-2816"><a href="#DataType.Type-2816"><span class="linenos">2816</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-2817"><a href="#DataType.Type-2817"><span class="linenos">2817</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-2818"><a href="#DataType.Type-2818"><span class="linenos">2818</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-2819"><a href="#DataType.Type-2819"><span class="linenos">2819</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-2820"><a href="#DataType.Type-2820"><span class="linenos">2820</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-2821"><a href="#DataType.Type-2821"><span class="linenos">2821</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-2822"><a href="#DataType.Type-2822"><span class="linenos">2822</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-2823"><a href="#DataType.Type-2823"><span class="linenos">2823</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-2824"><a href="#DataType.Type-2824"><span class="linenos">2824</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-2825"><a href="#DataType.Type-2825"><span class="linenos">2825</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-2826"><a href="#DataType.Type-2826"><span class="linenos">2826</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-2827"><a href="#DataType.Type-2827"><span class="linenos">2827</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-2828"><a href="#DataType.Type-2828"><span class="linenos">2828</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-2829"><a href="#DataType.Type-2829"><span class="linenos">2829</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-2830"><a href="#DataType.Type-2830"><span class="linenos">2830</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-2831"><a href="#DataType.Type-2831"><span class="linenos">2831</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-2832"><a href="#DataType.Type-2832"><span class="linenos">2832</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-2833"><a href="#DataType.Type-2833"><span class="linenos">2833</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-2834"><a href="#DataType.Type-2834"><span class="linenos">2834</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-2835"><a href="#DataType.Type-2835"><span class="linenos">2835</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-2836"><a href="#DataType.Type-2836"><span class="linenos">2836</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-2837"><a href="#DataType.Type-2837"><span class="linenos">2837</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-2838"><a href="#DataType.Type-2838"><span class="linenos">2838</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-2839"><a href="#DataType.Type-2839"><span class="linenos">2839</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-2840"><a href="#DataType.Type-2840"><span class="linenos">2840</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-2841"><a href="#DataType.Type-2841"><span class="linenos">2841</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-2842"><a href="#DataType.Type-2842"><span class="linenos">2842</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-2843"><a href="#DataType.Type-2843"><span class="linenos">2843</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-2844"><a href="#DataType.Type-2844"><span class="linenos">2844</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-2845"><a href="#DataType.Type-2845"><span class="linenos">2845</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-2846"><a href="#DataType.Type-2846"><span class="linenos">2846</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-2847"><a href="#DataType.Type-2847"><span class="linenos">2847</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-2848"><a href="#DataType.Type-2848"><span class="linenos">2848</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-2849"><a href="#DataType.Type-2849"><span class="linenos">2849</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-2850"><a href="#DataType.Type-2850"><span class="linenos">2850</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-2851"><a href="#DataType.Type-2851"><span class="linenos">2851</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-2852"><a href="#DataType.Type-2852"><span class="linenos">2852</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-2853"><a href="#DataType.Type-2853"><span class="linenos">2853</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-2854"><a href="#DataType.Type-2854"><span class="linenos">2854</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.Type-2838"><a href="#DataType.Type-2838"><span class="linenos">2838</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-2839"><a href="#DataType.Type-2839"><span class="linenos">2839</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-2840"><a href="#DataType.Type-2840"><span class="linenos">2840</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-2841"><a href="#DataType.Type-2841"><span class="linenos">2841</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-2842"><a href="#DataType.Type-2842"><span class="linenos">2842</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-2843"><a href="#DataType.Type-2843"><span class="linenos">2843</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-2844"><a href="#DataType.Type-2844"><span class="linenos">2844</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-2845"><a href="#DataType.Type-2845"><span class="linenos">2845</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-2846"><a href="#DataType.Type-2846"><span class="linenos">2846</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-2847"><a href="#DataType.Type-2847"><span class="linenos">2847</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-2848"><a href="#DataType.Type-2848"><span class="linenos">2848</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-2849"><a href="#DataType.Type-2849"><span class="linenos">2849</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-2850"><a href="#DataType.Type-2850"><span class="linenos">2850</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-2851"><a href="#DataType.Type-2851"><span class="linenos">2851</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-2852"><a href="#DataType.Type-2852"><span class="linenos">2852</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-2853"><a href="#DataType.Type-2853"><span class="linenos">2853</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-2854"><a href="#DataType.Type-2854"><span class="linenos">2854</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-2855"><a href="#DataType.Type-2855"><span class="linenos">2855</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-2856"><a href="#DataType.Type-2856"><span class="linenos">2856</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-2857"><a href="#DataType.Type-2857"><span class="linenos">2857</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-2858"><a href="#DataType.Type-2858"><span class="linenos">2858</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-2859"><a href="#DataType.Type-2859"><span class="linenos">2859</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-2860"><a href="#DataType.Type-2860"><span class="linenos">2860</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-2861"><a href="#DataType.Type-2861"><span class="linenos">2861</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-2862"><a href="#DataType.Type-2862"><span class="linenos">2862</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-2863"><a href="#DataType.Type-2863"><span class="linenos">2863</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-2864"><a href="#DataType.Type-2864"><span class="linenos">2864</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-2865"><a href="#DataType.Type-2865"><span class="linenos">2865</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-2866"><a href="#DataType.Type-2866"><span class="linenos">2866</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-2867"><a href="#DataType.Type-2867"><span class="linenos">2867</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-2868"><a href="#DataType.Type-2868"><span class="linenos">2868</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-2869"><a href="#DataType.Type-2869"><span class="linenos">2869</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-2870"><a href="#DataType.Type-2870"><span class="linenos">2870</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-2871"><a href="#DataType.Type-2871"><span class="linenos">2871</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-2872"><a href="#DataType.Type-2872"><span class="linenos">2872</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-2873"><a href="#DataType.Type-2873"><span class="linenos">2873</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-2874"><a href="#DataType.Type-2874"><span class="linenos">2874</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-2875"><a href="#DataType.Type-2875"><span class="linenos">2875</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-2876"><a href="#DataType.Type-2876"><span class="linenos">2876</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-2877"><a href="#DataType.Type-2877"><span class="linenos">2877</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-2878"><a href="#DataType.Type-2878"><span class="linenos">2878</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-2879"><a href="#DataType.Type-2879"><span class="linenos">2879</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-2880"><a href="#DataType.Type-2880"><span class="linenos">2880</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-2881"><a href="#DataType.Type-2881"><span class="linenos">2881</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-2882"><a href="#DataType.Type-2882"><span class="linenos">2882</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-2883"><a href="#DataType.Type-2883"><span class="linenos">2883</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-2884"><a href="#DataType.Type-2884"><span class="linenos">2884</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-2885"><a href="#DataType.Type-2885"><span class="linenos">2885</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-2886"><a href="#DataType.Type-2886"><span class="linenos">2886</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-2887"><a href="#DataType.Type-2887"><span class="linenos">2887</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-2888"><a href="#DataType.Type-2888"><span class="linenos">2888</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-2889"><a href="#DataType.Type-2889"><span class="linenos">2889</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-2890"><a href="#DataType.Type-2890"><span class="linenos">2890</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-2891"><a href="#DataType.Type-2891"><span class="linenos">2891</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-2892"><a href="#DataType.Type-2892"><span class="linenos">2892</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-2893"><a href="#DataType.Type-2893"><span class="linenos">2893</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-2894"><a href="#DataType.Type-2894"><span class="linenos">2894</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-2895"><a href="#DataType.Type-2895"><span class="linenos">2895</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-2896"><a href="#DataType.Type-2896"><span class="linenos">2896</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span>
</span></pre></div>
@@ -25308,6 +25808,18 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
+ <div id="DataType.Type.BIGDECIMAL" class="classattr">
+ <div class="attr variable">
+ <span class="name">BIGDECIMAL</span> =
+<span class="default_value">&lt;Type.BIGDECIMAL: &#39;BIGDECIMAL&#39;&gt;</span>
+
+
+ </div>
+ <a class="headerlink" href="#DataType.Type.BIGDECIMAL"></a>
+
+
+
+ </div>
<div id="DataType.Type.BIT" class="classattr">
<div class="attr variable">
<span class="name">BIT</span> =
@@ -25750,8 +26262,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#PseudoType"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PseudoType-2912"><a href="#PseudoType-2912"><span class="linenos">2912</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="PseudoType-2913"><a href="#PseudoType-2913"><span class="linenos">2913</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PseudoType-2954"><a href="#PseudoType-2954"><span class="linenos">2954</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="PseudoType-2955"><a href="#PseudoType-2955"><span class="linenos">2955</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25814,8 +26326,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#StructKwarg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StructKwarg-2916"><a href="#StructKwarg-2916"><span class="linenos">2916</span></a><span class="k">class</span> <span class="nc">StructKwarg</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="StructKwarg-2917"><a href="#StructKwarg-2917"><span class="linenos">2917</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StructKwarg-2958"><a href="#StructKwarg-2958"><span class="linenos">2958</span></a><span class="k">class</span> <span class="nc">StructKwarg</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="StructKwarg-2959"><a href="#StructKwarg-2959"><span class="linenos">2959</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -25878,8 +26390,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#SubqueryPredicate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SubqueryPredicate-2921"><a href="#SubqueryPredicate-2921"><span class="linenos">2921</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-2922"><a href="#SubqueryPredicate-2922"><span class="linenos">2922</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SubqueryPredicate-2963"><a href="#SubqueryPredicate-2963"><span class="linenos">2963</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-2964"><a href="#SubqueryPredicate-2964"><span class="linenos">2964</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25948,8 +26460,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#All"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="All-2925"><a href="#All-2925"><span class="linenos">2925</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-2926"><a href="#All-2926"><span class="linenos">2926</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="All-2967"><a href="#All-2967"><span class="linenos">2967</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-2968"><a href="#All-2968"><span class="linenos">2968</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26018,8 +26530,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Any"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Any-2929"><a href="#Any-2929"><span class="linenos">2929</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-2930"><a href="#Any-2930"><span class="linenos">2930</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Any-2971"><a href="#Any-2971"><span class="linenos">2971</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-2972"><a href="#Any-2972"><span class="linenos">2972</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26088,8 +26600,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Exists"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Exists-2933"><a href="#Exists-2933"><span class="linenos">2933</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-2934"><a href="#Exists-2934"><span class="linenos">2934</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Exists-2975"><a href="#Exists-2975"><span class="linenos">2975</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-2976"><a href="#Exists-2976"><span class="linenos">2976</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26158,8 +26670,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Command"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Command-2939"><a href="#Command-2939"><span class="linenos">2939</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-2940"><a href="#Command-2940"><span class="linenos">2940</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-2981"><a href="#Command-2981"><span class="linenos">2981</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-2982"><a href="#Command-2982"><span class="linenos">2982</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -26222,8 +26734,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Transaction"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Transaction-2943"><a href="#Transaction-2943"><span class="linenos">2943</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-2944"><a href="#Transaction-2944"><span class="linenos">2944</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Transaction-2985"><a href="#Transaction-2985"><span class="linenos">2985</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-2986"><a href="#Transaction-2986"><span class="linenos">2986</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -26286,8 +26798,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Commit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Commit-2947"><a href="#Commit-2947"><span class="linenos">2947</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-2948"><a href="#Commit-2948"><span class="linenos">2948</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Commit-2989"><a href="#Commit-2989"><span class="linenos">2989</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-2990"><a href="#Commit-2990"><span class="linenos">2990</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -26350,8 +26862,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Rollback"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Rollback-2951"><a href="#Rollback-2951"><span class="linenos">2951</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-2952"><a href="#Rollback-2952"><span class="linenos">2952</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Rollback-2993"><a href="#Rollback-2993"><span class="linenos">2993</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-2994"><a href="#Rollback-2994"><span class="linenos">2994</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -26414,8 +26926,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#AlterTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AlterTable-2955"><a href="#AlterTable-2955"><span class="linenos">2955</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-2956"><a href="#AlterTable-2956"><span class="linenos">2956</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AlterTable-2997"><a href="#AlterTable-2997"><span class="linenos">2997</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-2998"><a href="#AlterTable-2998"><span class="linenos">2998</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -26478,8 +26990,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#AddConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AddConstraint-2959"><a href="#AddConstraint-2959"><span class="linenos">2959</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-2960"><a href="#AddConstraint-2960"><span class="linenos">2960</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;enforced&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AddConstraint-3001"><a href="#AddConstraint-3001"><span class="linenos">3001</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-3002"><a href="#AddConstraint-3002"><span class="linenos">3002</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;enforced&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -26542,8 +27054,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DropPartition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DropPartition-2963"><a href="#DropPartition-2963"><span class="linenos">2963</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-2964"><a href="#DropPartition-2964"><span class="linenos">2964</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-3005"><a href="#DropPartition-3005"><span class="linenos">3005</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-3006"><a href="#DropPartition-3006"><span class="linenos">3006</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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>
@@ -26606,16 +27118,16 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Binary"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Binary-2968"><a href="#Binary-2968"><span class="linenos">2968</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Binary-2969"><a href="#Binary-2969"><span class="linenos">2969</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-2970"><a href="#Binary-2970"><span class="linenos">2970</span></a>
-</span><span id="Binary-2971"><a href="#Binary-2971"><span class="linenos">2971</span></a> <span class="nd">@property</span>
-</span><span id="Binary-2972"><a href="#Binary-2972"><span class="linenos">2972</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Binary-2973"><a href="#Binary-2973"><span class="linenos">2973</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-2974"><a href="#Binary-2974"><span class="linenos">2974</span></a>
-</span><span id="Binary-2975"><a href="#Binary-2975"><span class="linenos">2975</span></a> <span class="nd">@property</span>
-</span><span id="Binary-2976"><a href="#Binary-2976"><span class="linenos">2976</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Binary-2977"><a href="#Binary-2977"><span class="linenos">2977</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-3010"><a href="#Binary-3010"><span class="linenos">3010</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Binary-3011"><a href="#Binary-3011"><span class="linenos">3011</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3012"><a href="#Binary-3012"><span class="linenos">3012</span></a>
+</span><span id="Binary-3013"><a href="#Binary-3013"><span class="linenos">3013</span></a> <span class="nd">@property</span>
+</span><span id="Binary-3014"><a href="#Binary-3014"><span class="linenos">3014</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Binary-3015"><a href="#Binary-3015"><span class="linenos">3015</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-3016"><a href="#Binary-3016"><span class="linenos">3016</span></a>
+</span><span id="Binary-3017"><a href="#Binary-3017"><span class="linenos">3017</span></a> <span class="nd">@property</span>
+</span><span id="Binary-3018"><a href="#Binary-3018"><span class="linenos">3018</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Binary-3019"><a href="#Binary-3019"><span class="linenos">3019</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span></pre></div>
@@ -26678,8 +27190,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Add"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Add-2980"><a href="#Add-2980"><span class="linenos">2980</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-2981"><a href="#Add-2981"><span class="linenos">2981</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Add-3022"><a href="#Add-3022"><span class="linenos">3022</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-3023"><a href="#Add-3023"><span class="linenos">3023</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26742,8 +27254,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Connector"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Connector-2984"><a href="#Connector-2984"><span class="linenos">2984</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
-</span><span id="Connector-2985"><a href="#Connector-2985"><span class="linenos">2985</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Connector-3026"><a href="#Connector-3026"><span class="linenos">3026</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
+</span><span id="Connector-3027"><a href="#Connector-3027"><span class="linenos">3027</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26812,8 +27324,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#And"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="And-2988"><a href="#And-2988"><span class="linenos">2988</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-2989"><a href="#And-2989"><span class="linenos">2989</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="And-3030"><a href="#And-3030"><span class="linenos">3030</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-3031"><a href="#And-3031"><span class="linenos">3031</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26882,8 +27394,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Or"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Or-2992"><a href="#Or-2992"><span class="linenos">2992</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-2993"><a href="#Or-2993"><span class="linenos">2993</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Or-3034"><a href="#Or-3034"><span class="linenos">3034</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-3035"><a href="#Or-3035"><span class="linenos">3035</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26952,8 +27464,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseAnd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseAnd-2996"><a href="#BitwiseAnd-2996"><span class="linenos">2996</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-2997"><a href="#BitwiseAnd-2997"><span class="linenos">2997</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseAnd-3038"><a href="#BitwiseAnd-3038"><span class="linenos">3038</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-3039"><a href="#BitwiseAnd-3039"><span class="linenos">3039</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27016,8 +27528,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseLeftShift"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseLeftShift-3000"><a href="#BitwiseLeftShift-3000"><span class="linenos">3000</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-3001"><a href="#BitwiseLeftShift-3001"><span class="linenos">3001</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseLeftShift-3042"><a href="#BitwiseLeftShift-3042"><span class="linenos">3042</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-3043"><a href="#BitwiseLeftShift-3043"><span class="linenos">3043</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27080,8 +27592,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseOr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseOr-3004"><a href="#BitwiseOr-3004"><span class="linenos">3004</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-3005"><a href="#BitwiseOr-3005"><span class="linenos">3005</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseOr-3046"><a href="#BitwiseOr-3046"><span class="linenos">3046</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-3047"><a href="#BitwiseOr-3047"><span class="linenos">3047</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27144,8 +27656,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseRightShift"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseRightShift-3008"><a href="#BitwiseRightShift-3008"><span class="linenos">3008</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-3009"><a href="#BitwiseRightShift-3009"><span class="linenos">3009</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseRightShift-3050"><a href="#BitwiseRightShift-3050"><span class="linenos">3050</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-3051"><a href="#BitwiseRightShift-3051"><span class="linenos">3051</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27208,8 +27720,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseXor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseXor-3012"><a href="#BitwiseXor-3012"><span class="linenos">3012</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-3013"><a href="#BitwiseXor-3013"><span class="linenos">3013</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseXor-3054"><a href="#BitwiseXor-3054"><span class="linenos">3054</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-3055"><a href="#BitwiseXor-3055"><span class="linenos">3055</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27272,8 +27784,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Div"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Div-3016"><a href="#Div-3016"><span class="linenos">3016</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-3017"><a href="#Div-3017"><span class="linenos">3017</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Div-3058"><a href="#Div-3058"><span class="linenos">3058</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-3059"><a href="#Div-3059"><span class="linenos">3059</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27336,8 +27848,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Overlaps"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Overlaps-3020"><a href="#Overlaps-3020"><span class="linenos">3020</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-3021"><a href="#Overlaps-3021"><span class="linenos">3021</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Overlaps-3062"><a href="#Overlaps-3062"><span class="linenos">3062</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-3063"><a href="#Overlaps-3063"><span class="linenos">3063</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27400,24 +27912,24 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Dot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Dot-3024"><a href="#Dot-3024"><span class="linenos">3024</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-3025"><a href="#Dot-3025"><span class="linenos">3025</span></a> <span class="nd">@property</span>
-</span><span id="Dot-3026"><a href="#Dot-3026"><span class="linenos">3026</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-3027"><a href="#Dot-3027"><span class="linenos">3027</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-3028"><a href="#Dot-3028"><span class="linenos">3028</span></a>
-</span><span id="Dot-3029"><a href="#Dot-3029"><span class="linenos">3029</span></a> <span class="nd">@classmethod</span>
-</span><span id="Dot-3030"><a href="#Dot-3030"><span class="linenos">3030</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-3031"><a href="#Dot-3031"><span class="linenos">3031</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-3032"><a href="#Dot-3032"><span class="linenos">3032</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-3033"><a href="#Dot-3033"><span class="linenos">3033</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;Dot requires &gt;= 2 expressions.&quot;</span><span class="p">)</span>
-</span><span id="Dot-3034"><a href="#Dot-3034"><span class="linenos">3034</span></a>
-</span><span id="Dot-3035"><a href="#Dot-3035"><span class="linenos">3035</span></a> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span> <span class="o">=</span> <span class="n">expressions</span>
-</span><span id="Dot-3036"><a href="#Dot-3036"><span class="linenos">3036</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">b</span><span class="p">)</span>
-</span><span id="Dot-3037"><a href="#Dot-3037"><span class="linenos">3037</span></a>
-</span><span id="Dot-3038"><a href="#Dot-3038"><span class="linenos">3038</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="Dot-3039"><a href="#Dot-3039"><span class="linenos">3039</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dot</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="Dot-3040"><a href="#Dot-3040"><span class="linenos">3040</span></a>
-</span><span id="Dot-3041"><a href="#Dot-3041"><span class="linenos">3041</span></a> <span class="k">return</span> <span class="n">dot</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Dot-3066"><a href="#Dot-3066"><span class="linenos">3066</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-3067"><a href="#Dot-3067"><span class="linenos">3067</span></a> <span class="nd">@property</span>
+</span><span id="Dot-3068"><a href="#Dot-3068"><span class="linenos">3068</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-3069"><a href="#Dot-3069"><span class="linenos">3069</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-3070"><a href="#Dot-3070"><span class="linenos">3070</span></a>
+</span><span id="Dot-3071"><a href="#Dot-3071"><span class="linenos">3071</span></a> <span class="nd">@classmethod</span>
+</span><span id="Dot-3072"><a href="#Dot-3072"><span class="linenos">3072</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-3073"><a href="#Dot-3073"><span class="linenos">3073</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-3074"><a href="#Dot-3074"><span class="linenos">3074</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-3075"><a href="#Dot-3075"><span class="linenos">3075</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;Dot requires &gt;= 2 expressions.&quot;</span><span class="p">)</span>
+</span><span id="Dot-3076"><a href="#Dot-3076"><span class="linenos">3076</span></a>
+</span><span id="Dot-3077"><a href="#Dot-3077"><span class="linenos">3077</span></a> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span> <span class="o">=</span> <span class="n">expressions</span>
+</span><span id="Dot-3078"><a href="#Dot-3078"><span class="linenos">3078</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">b</span><span class="p">)</span>
+</span><span id="Dot-3079"><a href="#Dot-3079"><span class="linenos">3079</span></a>
+</span><span id="Dot-3080"><a href="#Dot-3080"><span class="linenos">3080</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="Dot-3081"><a href="#Dot-3081"><span class="linenos">3081</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dot</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="Dot-3082"><a href="#Dot-3082"><span class="linenos">3082</span></a>
+</span><span id="Dot-3083"><a href="#Dot-3083"><span class="linenos">3083</span></a> <span class="k">return</span> <span class="n">dot</span>
</span></pre></div>
@@ -27435,19 +27947,19 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Dot.build"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.build-3029"><a href="#Dot.build-3029"><span class="linenos">3029</span></a> <span class="nd">@classmethod</span>
-</span><span id="Dot.build-3030"><a href="#Dot.build-3030"><span class="linenos">3030</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-3031"><a href="#Dot.build-3031"><span class="linenos">3031</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-3032"><a href="#Dot.build-3032"><span class="linenos">3032</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-3033"><a href="#Dot.build-3033"><span class="linenos">3033</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;Dot requires &gt;= 2 expressions.&quot;</span><span class="p">)</span>
-</span><span id="Dot.build-3034"><a href="#Dot.build-3034"><span class="linenos">3034</span></a>
-</span><span id="Dot.build-3035"><a href="#Dot.build-3035"><span class="linenos">3035</span></a> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span> <span class="o">=</span> <span class="n">expressions</span>
-</span><span id="Dot.build-3036"><a href="#Dot.build-3036"><span class="linenos">3036</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">b</span><span class="p">)</span>
-</span><span id="Dot.build-3037"><a href="#Dot.build-3037"><span class="linenos">3037</span></a>
-</span><span id="Dot.build-3038"><a href="#Dot.build-3038"><span class="linenos">3038</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="Dot.build-3039"><a href="#Dot.build-3039"><span class="linenos">3039</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dot</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="Dot.build-3040"><a href="#Dot.build-3040"><span class="linenos">3040</span></a>
-</span><span id="Dot.build-3041"><a href="#Dot.build-3041"><span class="linenos">3041</span></a> <span class="k">return</span> <span class="n">dot</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.build-3071"><a href="#Dot.build-3071"><span class="linenos">3071</span></a> <span class="nd">@classmethod</span>
+</span><span id="Dot.build-3072"><a href="#Dot.build-3072"><span class="linenos">3072</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-3073"><a href="#Dot.build-3073"><span class="linenos">3073</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-3074"><a href="#Dot.build-3074"><span class="linenos">3074</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-3075"><a href="#Dot.build-3075"><span class="linenos">3075</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;Dot requires &gt;= 2 expressions.&quot;</span><span class="p">)</span>
+</span><span id="Dot.build-3076"><a href="#Dot.build-3076"><span class="linenos">3076</span></a>
+</span><span id="Dot.build-3077"><a href="#Dot.build-3077"><span class="linenos">3077</span></a> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span> <span class="o">=</span> <span class="n">expressions</span>
+</span><span id="Dot.build-3078"><a href="#Dot.build-3078"><span class="linenos">3078</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">b</span><span class="p">)</span>
+</span><span id="Dot.build-3079"><a href="#Dot.build-3079"><span class="linenos">3079</span></a>
+</span><span id="Dot.build-3080"><a href="#Dot.build-3080"><span class="linenos">3080</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="Dot.build-3081"><a href="#Dot.build-3081"><span class="linenos">3081</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dot</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="Dot.build-3082"><a href="#Dot.build-3082"><span class="linenos">3082</span></a>
+</span><span id="Dot.build-3083"><a href="#Dot.build-3083"><span class="linenos">3083</span></a> <span class="k">return</span> <span class="n">dot</span>
</span></pre></div>
@@ -27513,8 +28025,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DPipe"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DPipe-3044"><a href="#DPipe-3044"><span class="linenos">3044</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-3045"><a href="#DPipe-3045"><span class="linenos">3045</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DPipe-3086"><a href="#DPipe-3086"><span class="linenos">3086</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-3087"><a href="#DPipe-3087"><span class="linenos">3087</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27577,8 +28089,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#EQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="EQ-3048"><a href="#EQ-3048"><span class="linenos">3048</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-3049"><a href="#EQ-3049"><span class="linenos">3049</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="EQ-3090"><a href="#EQ-3090"><span class="linenos">3090</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-3091"><a href="#EQ-3091"><span class="linenos">3091</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27647,8 +28159,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#NullSafeEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeEQ-3052"><a href="#NullSafeEQ-3052"><span class="linenos">3052</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-3053"><a href="#NullSafeEQ-3053"><span class="linenos">3053</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeEQ-3094"><a href="#NullSafeEQ-3094"><span class="linenos">3094</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-3095"><a href="#NullSafeEQ-3095"><span class="linenos">3095</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27717,8 +28229,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#NullSafeNEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeNEQ-3056"><a href="#NullSafeNEQ-3056"><span class="linenos">3056</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-3057"><a href="#NullSafeNEQ-3057"><span class="linenos">3057</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeNEQ-3098"><a href="#NullSafeNEQ-3098"><span class="linenos">3098</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-3099"><a href="#NullSafeNEQ-3099"><span class="linenos">3099</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27787,8 +28299,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Distance"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Distance-3060"><a href="#Distance-3060"><span class="linenos">3060</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-3061"><a href="#Distance-3061"><span class="linenos">3061</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Distance-3102"><a href="#Distance-3102"><span class="linenos">3102</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-3103"><a href="#Distance-3103"><span class="linenos">3103</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27851,8 +28363,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Escape"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Escape-3064"><a href="#Escape-3064"><span class="linenos">3064</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-3065"><a href="#Escape-3065"><span class="linenos">3065</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Escape-3106"><a href="#Escape-3106"><span class="linenos">3106</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-3107"><a href="#Escape-3107"><span class="linenos">3107</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27915,8 +28427,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Glob"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Glob-3068"><a href="#Glob-3068"><span class="linenos">3068</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-3069"><a href="#Glob-3069"><span class="linenos">3069</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Glob-3110"><a href="#Glob-3110"><span class="linenos">3110</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-3111"><a href="#Glob-3111"><span class="linenos">3111</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27985,8 +28497,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#GT"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GT-3072"><a href="#GT-3072"><span class="linenos">3072</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-3073"><a href="#GT-3073"><span class="linenos">3073</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GT-3114"><a href="#GT-3114"><span class="linenos">3114</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-3115"><a href="#GT-3115"><span class="linenos">3115</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28055,8 +28567,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#GTE"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GTE-3076"><a href="#GTE-3076"><span class="linenos">3076</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-3077"><a href="#GTE-3077"><span class="linenos">3077</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GTE-3118"><a href="#GTE-3118"><span class="linenos">3118</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-3119"><a href="#GTE-3119"><span class="linenos">3119</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28125,8 +28637,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#ILike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ILike-3080"><a href="#ILike-3080"><span class="linenos">3080</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-3081"><a href="#ILike-3081"><span class="linenos">3081</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ILike-3122"><a href="#ILike-3122"><span class="linenos">3122</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-3123"><a href="#ILike-3123"><span class="linenos">3123</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28195,8 +28707,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#ILikeAny"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ILikeAny-3084"><a href="#ILikeAny-3084"><span class="linenos">3084</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-3085"><a href="#ILikeAny-3085"><span class="linenos">3085</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ILikeAny-3126"><a href="#ILikeAny-3126"><span class="linenos">3126</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-3127"><a href="#ILikeAny-3127"><span class="linenos">3127</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28265,8 +28777,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#IntDiv"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IntDiv-3088"><a href="#IntDiv-3088"><span class="linenos">3088</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-3089"><a href="#IntDiv-3089"><span class="linenos">3089</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IntDiv-3130"><a href="#IntDiv-3130"><span class="linenos">3130</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-3131"><a href="#IntDiv-3131"><span class="linenos">3131</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28329,8 +28841,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Is"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Is-3092"><a href="#Is-3092"><span class="linenos">3092</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-3093"><a href="#Is-3093"><span class="linenos">3093</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Is-3134"><a href="#Is-3134"><span class="linenos">3134</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-3135"><a href="#Is-3135"><span class="linenos">3135</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28399,8 +28911,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Kwarg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Kwarg-3096"><a href="#Kwarg-3096"><span class="linenos">3096</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-3097"><a href="#Kwarg-3097"><span class="linenos">3097</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-3138"><a href="#Kwarg-3138"><span class="linenos">3138</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-3139"><a href="#Kwarg-3139"><span class="linenos">3139</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>
@@ -28465,8 +28977,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Like"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Like-3100"><a href="#Like-3100"><span class="linenos">3100</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-3101"><a href="#Like-3101"><span class="linenos">3101</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Like-3142"><a href="#Like-3142"><span class="linenos">3142</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-3143"><a href="#Like-3143"><span class="linenos">3143</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28535,8 +29047,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#LikeAny"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LikeAny-3104"><a href="#LikeAny-3104"><span class="linenos">3104</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-3105"><a href="#LikeAny-3105"><span class="linenos">3105</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LikeAny-3146"><a href="#LikeAny-3146"><span class="linenos">3146</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-3147"><a href="#LikeAny-3147"><span class="linenos">3147</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28605,8 +29117,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#LT"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LT-3108"><a href="#LT-3108"><span class="linenos">3108</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-3109"><a href="#LT-3109"><span class="linenos">3109</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LT-3150"><a href="#LT-3150"><span class="linenos">3150</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-3151"><a href="#LT-3151"><span class="linenos">3151</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28675,8 +29187,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#LTE"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LTE-3112"><a href="#LTE-3112"><span class="linenos">3112</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-3113"><a href="#LTE-3113"><span class="linenos">3113</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LTE-3154"><a href="#LTE-3154"><span class="linenos">3154</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-3155"><a href="#LTE-3155"><span class="linenos">3155</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28745,8 +29257,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Mod"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Mod-3116"><a href="#Mod-3116"><span class="linenos">3116</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-3117"><a href="#Mod-3117"><span class="linenos">3117</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Mod-3158"><a href="#Mod-3158"><span class="linenos">3158</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-3159"><a href="#Mod-3159"><span class="linenos">3159</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28809,8 +29321,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Mul"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Mul-3120"><a href="#Mul-3120"><span class="linenos">3120</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-3121"><a href="#Mul-3121"><span class="linenos">3121</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Mul-3162"><a href="#Mul-3162"><span class="linenos">3162</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-3163"><a href="#Mul-3163"><span class="linenos">3163</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28873,8 +29385,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#NEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NEQ-3124"><a href="#NEQ-3124"><span class="linenos">3124</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-3125"><a href="#NEQ-3125"><span class="linenos">3125</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NEQ-3166"><a href="#NEQ-3166"><span class="linenos">3166</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-3167"><a href="#NEQ-3167"><span class="linenos">3167</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28943,8 +29455,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#SimilarTo"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SimilarTo-3128"><a href="#SimilarTo-3128"><span class="linenos">3128</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-3129"><a href="#SimilarTo-3129"><span class="linenos">3129</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SimilarTo-3170"><a href="#SimilarTo-3170"><span class="linenos">3170</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-3171"><a href="#SimilarTo-3171"><span class="linenos">3171</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29013,8 +29525,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Slice"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Slice-3132"><a href="#Slice-3132"><span class="linenos">3132</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-3133"><a href="#Slice-3133"><span class="linenos">3133</span></a> <span class="n">arg_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-3174"><a href="#Slice-3174"><span class="linenos">3174</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-3175"><a href="#Slice-3175"><span class="linenos">3175</span></a> <span class="n">arg_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>
@@ -29077,8 +29589,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Sub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sub-3136"><a href="#Sub-3136"><span class="linenos">3136</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-3137"><a href="#Sub-3137"><span class="linenos">3137</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sub-3178"><a href="#Sub-3178"><span class="linenos">3178</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-3179"><a href="#Sub-3179"><span class="linenos">3179</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29141,8 +29653,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#ArrayOverlaps"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayOverlaps-3140"><a href="#ArrayOverlaps-3140"><span class="linenos">3140</span></a><span class="k">class</span> <span class="nc">ArrayOverlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="ArrayOverlaps-3141"><a href="#ArrayOverlaps-3141"><span class="linenos">3141</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayOverlaps-3182"><a href="#ArrayOverlaps-3182"><span class="linenos">3182</span></a><span class="k">class</span> <span class="nc">ArrayOverlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="ArrayOverlaps-3183"><a href="#ArrayOverlaps-3183"><span class="linenos">3183</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29205,8 +29717,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Unary"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unary-3146"><a href="#Unary-3146"><span class="linenos">3146</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Unary-3147"><a href="#Unary-3147"><span class="linenos">3147</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unary-3188"><a href="#Unary-3188"><span class="linenos">3188</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Unary-3189"><a href="#Unary-3189"><span class="linenos">3189</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29269,8 +29781,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseNot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseNot-3150"><a href="#BitwiseNot-3150"><span class="linenos">3150</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-3151"><a href="#BitwiseNot-3151"><span class="linenos">3151</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseNot-3192"><a href="#BitwiseNot-3192"><span class="linenos">3192</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-3193"><a href="#BitwiseNot-3193"><span class="linenos">3193</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29333,8 +29845,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Not"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Not-3154"><a href="#Not-3154"><span class="linenos">3154</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
-</span><span id="Not-3155"><a href="#Not-3155"><span class="linenos">3155</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Not-3196"><a href="#Not-3196"><span class="linenos">3196</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
+</span><span id="Not-3197"><a href="#Not-3197"><span class="linenos">3197</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29403,8 +29915,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Paren"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Paren-3158"><a href="#Paren-3158"><span class="linenos">3158</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
-</span><span id="Paren-3159"><a href="#Paren-3159"><span class="linenos">3159</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Paren-3200"><a href="#Paren-3200"><span class="linenos">3200</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
+</span><span id="Paren-3201"><a href="#Paren-3201"><span class="linenos">3201</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -29473,8 +29985,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Neg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Neg-3162"><a href="#Neg-3162"><span class="linenos">3162</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-3163"><a href="#Neg-3163"><span class="linenos">3163</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Neg-3204"><a href="#Neg-3204"><span class="linenos">3204</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-3205"><a href="#Neg-3205"><span class="linenos">3205</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29537,12 +30049,12 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Alias"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Alias-3167"><a href="#Alias-3167"><span class="linenos">3167</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-3168"><a href="#Alias-3168"><span class="linenos">3168</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3169"><a href="#Alias-3169"><span class="linenos">3169</span></a>
-</span><span id="Alias-3170"><a href="#Alias-3170"><span class="linenos">3170</span></a> <span class="nd">@property</span>
-</span><span id="Alias-3171"><a href="#Alias-3171"><span class="linenos">3171</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Alias-3172"><a href="#Alias-3172"><span class="linenos">3172</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-3208"><a href="#Alias-3208"><span class="linenos">3208</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-3209"><a href="#Alias-3209"><span class="linenos">3209</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3210"><a href="#Alias-3210"><span class="linenos">3210</span></a>
+</span><span id="Alias-3211"><a href="#Alias-3211"><span class="linenos">3211</span></a> <span class="nd">@property</span>
+</span><span id="Alias-3212"><a href="#Alias-3212"><span class="linenos">3212</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Alias-3213"><a href="#Alias-3213"><span class="linenos">3213</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span></pre></div>
@@ -29634,12 +30146,12 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Aliases"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Aliases-3175"><a href="#Aliases-3175"><span class="linenos">3175</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-3176"><a href="#Aliases-3176"><span class="linenos">3176</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3177"><a href="#Aliases-3177"><span class="linenos">3177</span></a>
-</span><span id="Aliases-3178"><a href="#Aliases-3178"><span class="linenos">3178</span></a> <span class="nd">@property</span>
-</span><span id="Aliases-3179"><a href="#Aliases-3179"><span class="linenos">3179</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-3180"><a href="#Aliases-3180"><span class="linenos">3180</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-3216"><a href="#Aliases-3216"><span class="linenos">3216</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-3217"><a href="#Aliases-3217"><span class="linenos">3217</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3218"><a href="#Aliases-3218"><span class="linenos">3218</span></a>
+</span><span id="Aliases-3219"><a href="#Aliases-3219"><span class="linenos">3219</span></a> <span class="nd">@property</span>
+</span><span id="Aliases-3220"><a href="#Aliases-3220"><span class="linenos">3220</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-3221"><a href="#Aliases-3221"><span class="linenos">3221</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -29702,8 +30214,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#AtTimeZone"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AtTimeZone-3183"><a href="#AtTimeZone-3183"><span class="linenos">3183</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-3184"><a href="#AtTimeZone-3184"><span class="linenos">3184</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3224"><a href="#AtTimeZone-3224"><span class="linenos">3224</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-3225"><a href="#AtTimeZone-3225"><span class="linenos">3225</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -29766,8 +30278,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Between"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Between-3187"><a href="#Between-3187"><span class="linenos">3187</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-3188"><a href="#Between-3188"><span class="linenos">3188</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3228"><a href="#Between-3228"><span class="linenos">3228</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-3229"><a href="#Between-3229"><span class="linenos">3229</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -29836,8 +30348,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Bracket"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Bracket-3191"><a href="#Bracket-3191"><span class="linenos">3191</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-3192"><a href="#Bracket-3192"><span class="linenos">3192</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Bracket-3232"><a href="#Bracket-3232"><span class="linenos">3232</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-3233"><a href="#Bracket-3233"><span class="linenos">3233</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -29906,8 +30418,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Distinct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Distinct-3195"><a href="#Distinct-3195"><span class="linenos">3195</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-3196"><a href="#Distinct-3196"><span class="linenos">3196</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-3236"><a href="#Distinct-3236"><span class="linenos">3236</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-3237"><a href="#Distinct-3237"><span class="linenos">3237</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>
@@ -29970,15 +30482,15 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#In"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="In-3199"><a href="#In-3199"><span class="linenos">3199</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-3200"><a href="#In-3200"><span class="linenos">3200</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="In-3201"><a href="#In-3201"><span class="linenos">3201</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-3202"><a href="#In-3202"><span class="linenos">3202</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-3203"><a href="#In-3203"><span class="linenos">3203</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-3204"><a href="#In-3204"><span class="linenos">3204</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-3205"><a href="#In-3205"><span class="linenos">3205</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-3206"><a href="#In-3206"><span class="linenos">3206</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-3207"><a href="#In-3207"><span class="linenos">3207</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="In-3240"><a href="#In-3240"><span class="linenos">3240</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-3241"><a href="#In-3241"><span class="linenos">3241</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="In-3242"><a href="#In-3242"><span class="linenos">3242</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-3243"><a href="#In-3243"><span class="linenos">3243</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-3244"><a href="#In-3244"><span class="linenos">3244</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-3245"><a href="#In-3245"><span class="linenos">3245</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-3246"><a href="#In-3246"><span class="linenos">3246</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-3247"><a href="#In-3247"><span class="linenos">3247</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-3248"><a href="#In-3248"><span class="linenos">3248</span></a> <span class="p">}</span>
</span></pre></div>
@@ -30047,18 +30559,18 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#TimeUnit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit-3210"><a href="#TimeUnit-3210"><span class="linenos">3210</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-3211"><a href="#TimeUnit-3211"><span class="linenos">3211</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-3212"><a href="#TimeUnit-3212"><span class="linenos">3212</span></a>
-</span><span id="TimeUnit-3213"><a href="#TimeUnit-3213"><span class="linenos">3213</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-3214"><a href="#TimeUnit-3214"><span class="linenos">3214</span></a>
-</span><span id="TimeUnit-3215"><a href="#TimeUnit-3215"><span class="linenos">3215</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-3216"><a href="#TimeUnit-3216"><span class="linenos">3216</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-3217"><a href="#TimeUnit-3217"><span class="linenos">3217</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="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span>
-</span><span id="TimeUnit-3218"><a href="#TimeUnit-3218"><span class="linenos">3218</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="TimeUnit-3219"><a href="#TimeUnit-3219"><span class="linenos">3219</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-3220"><a href="#TimeUnit-3220"><span class="linenos">3220</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
-</span><span id="TimeUnit-3221"><a href="#TimeUnit-3221"><span class="linenos">3221</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-3251"><a href="#TimeUnit-3251"><span class="linenos">3251</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-3252"><a href="#TimeUnit-3252"><span class="linenos">3252</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-3253"><a href="#TimeUnit-3253"><span class="linenos">3253</span></a>
+</span><span id="TimeUnit-3254"><a href="#TimeUnit-3254"><span class="linenos">3254</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-3255"><a href="#TimeUnit-3255"><span class="linenos">3255</span></a>
+</span><span id="TimeUnit-3256"><a href="#TimeUnit-3256"><span class="linenos">3256</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-3257"><a href="#TimeUnit-3257"><span class="linenos">3257</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-3258"><a href="#TimeUnit-3258"><span class="linenos">3258</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="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span>
+</span><span id="TimeUnit-3259"><a href="#TimeUnit-3259"><span class="linenos">3259</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="TimeUnit-3260"><a href="#TimeUnit-3260"><span class="linenos">3260</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-3261"><a href="#TimeUnit-3261"><span class="linenos">3261</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
+</span><span id="TimeUnit-3262"><a href="#TimeUnit-3262"><span class="linenos">3262</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>
@@ -30076,13 +30588,13 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#TimeUnit.__init__"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit.__init__-3215"><a href="#TimeUnit.__init__-3215"><span class="linenos">3215</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__-3216"><a href="#TimeUnit.__init__-3216"><span class="linenos">3216</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__-3217"><a href="#TimeUnit.__init__-3217"><span class="linenos">3217</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="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span>
-</span><span id="TimeUnit.__init__-3218"><a href="#TimeUnit.__init__-3218"><span class="linenos">3218</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="TimeUnit.__init__-3219"><a href="#TimeUnit.__init__-3219"><span class="linenos">3219</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__-3220"><a href="#TimeUnit.__init__-3220"><span class="linenos">3220</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
-</span><span id="TimeUnit.__init__-3221"><a href="#TimeUnit.__init__-3221"><span class="linenos">3221</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__-3256"><a href="#TimeUnit.__init__-3256"><span class="linenos">3256</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__-3257"><a href="#TimeUnit.__init__-3257"><span class="linenos">3257</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__-3258"><a href="#TimeUnit.__init__-3258"><span class="linenos">3258</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="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span>
+</span><span id="TimeUnit.__init__-3259"><a href="#TimeUnit.__init__-3259"><span class="linenos">3259</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="TimeUnit.__init__-3260"><a href="#TimeUnit.__init__-3260"><span class="linenos">3260</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__-3261"><a href="#TimeUnit.__init__-3261"><span class="linenos">3261</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
+</span><span id="TimeUnit.__init__-3262"><a href="#TimeUnit.__init__-3262"><span class="linenos">3262</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>
@@ -30145,8 +30657,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Interval"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Interval-3224"><a href="#Interval-3224"><span class="linenos">3224</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-3225"><a href="#Interval-3225"><span class="linenos">3225</span></a> <span class="n">arg_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-3265"><a href="#Interval-3265"><span class="linenos">3265</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-3266"><a href="#Interval-3266"><span class="linenos">3266</span></a> <span class="n">arg_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>
@@ -30212,8 +30724,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#IgnoreNulls"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IgnoreNulls-3228"><a href="#IgnoreNulls-3228"><span class="linenos">3228</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-3229"><a href="#IgnoreNulls-3229"><span class="linenos">3229</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IgnoreNulls-3269"><a href="#IgnoreNulls-3269"><span class="linenos">3269</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-3270"><a href="#IgnoreNulls-3270"><span class="linenos">3270</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30276,8 +30788,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#RespectNulls"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RespectNulls-3232"><a href="#RespectNulls-3232"><span class="linenos">3232</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-3233"><a href="#RespectNulls-3233"><span class="linenos">3233</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RespectNulls-3273"><a href="#RespectNulls-3273"><span class="linenos">3273</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-3274"><a href="#RespectNulls-3274"><span class="linenos">3274</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30340,53 +30852,53 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Func"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Func-3237"><a href="#Func-3237"><span class="linenos">3237</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-3238"><a href="#Func-3238"><span class="linenos">3238</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Func-3239"><a href="#Func-3239"><span class="linenos">3239</span></a><span class="sd"> The base class for all function expressions.</span>
-</span><span id="Func-3240"><a href="#Func-3240"><span class="linenos">3240</span></a>
-</span><span id="Func-3241"><a href="#Func-3241"><span class="linenos">3241</span></a><span class="sd"> Attributes:</span>
-</span><span id="Func-3242"><a href="#Func-3242"><span class="linenos">3242</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-3243"><a href="#Func-3243"><span class="linenos">3243</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-3244"><a href="#Func-3244"><span class="linenos">3244</span></a><span class="sd"> _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)</span>
-</span><span id="Func-3245"><a href="#Func-3245"><span class="linenos">3245</span></a><span class="sd"> for this function expression. These values are used to map this node to a name during parsing</span>
-</span><span id="Func-3246"><a href="#Func-3246"><span class="linenos">3246</span></a><span class="sd"> as well as to provide the function&#39;s name during SQL string generation. By default the SQL</span>
-</span><span id="Func-3247"><a href="#Func-3247"><span class="linenos">3247</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
-</span><span id="Func-3248"><a href="#Func-3248"><span class="linenos">3248</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Func-3249"><a href="#Func-3249"><span class="linenos">3249</span></a>
-</span><span id="Func-3250"><a href="#Func-3250"><span class="linenos">3250</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="Func-3251"><a href="#Func-3251"><span class="linenos">3251</span></a>
-</span><span id="Func-3252"><a href="#Func-3252"><span class="linenos">3252</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-3253"><a href="#Func-3253"><span class="linenos">3253</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-3254"><a href="#Func-3254"><span class="linenos">3254</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-3255"><a href="#Func-3255"><span class="linenos">3255</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-3256"><a href="#Func-3256"><span class="linenos">3256</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
-</span><span id="Func-3257"><a href="#Func-3257"><span class="linenos">3257</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-3258"><a href="#Func-3258"><span class="linenos">3258</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-3259"><a href="#Func-3259"><span class="linenos">3259</span></a>
-</span><span id="Func-3260"><a href="#Func-3260"><span class="linenos">3260</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-3261"><a href="#Func-3261"><span class="linenos">3261</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-3262"><a href="#Func-3262"><span class="linenos">3262</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Func-3263"><a href="#Func-3263"><span class="linenos">3263</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-3264"><a href="#Func-3264"><span class="linenos">3264</span></a>
-</span><span id="Func-3265"><a href="#Func-3265"><span class="linenos">3265</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-3266"><a href="#Func-3266"><span class="linenos">3266</span></a>
-</span><span id="Func-3267"><a href="#Func-3267"><span class="linenos">3267</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-3268"><a href="#Func-3268"><span class="linenos">3268</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-3269"><a href="#Func-3269"><span class="linenos">3269</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-3270"><a href="#Func-3270"><span class="linenos">3270</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
-</span><span id="Func-3271"><a href="#Func-3271"><span class="linenos">3271</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
-</span><span id="Func-3272"><a href="#Func-3272"><span class="linenos">3272</span></a> <span class="p">)</span>
-</span><span id="Func-3273"><a href="#Func-3273"><span class="linenos">3273</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-3274"><a href="#Func-3274"><span class="linenos">3274</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-3275"><a href="#Func-3275"><span class="linenos">3275</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-3276"><a href="#Func-3276"><span class="linenos">3276</span></a>
-</span><span id="Func-3277"><a href="#Func-3277"><span class="linenos">3277</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-3278"><a href="#Func-3278"><span class="linenos">3278</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-3279"><a href="#Func-3279"><span class="linenos">3279</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-3280"><a href="#Func-3280"><span class="linenos">3280</span></a>
-</span><span id="Func-3281"><a href="#Func-3281"><span class="linenos">3281</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-3282"><a href="#Func-3282"><span class="linenos">3282</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-3283"><a href="#Func-3283"><span class="linenos">3283</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-3278"><a href="#Func-3278"><span class="linenos">3278</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-3279"><a href="#Func-3279"><span class="linenos">3279</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Func-3280"><a href="#Func-3280"><span class="linenos">3280</span></a><span class="sd"> The base class for all function expressions.</span>
+</span><span id="Func-3281"><a href="#Func-3281"><span class="linenos">3281</span></a>
+</span><span id="Func-3282"><a href="#Func-3282"><span class="linenos">3282</span></a><span class="sd"> Attributes:</span>
+</span><span id="Func-3283"><a href="#Func-3283"><span class="linenos">3283</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-3284"><a href="#Func-3284"><span class="linenos">3284</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-3285"><a href="#Func-3285"><span class="linenos">3285</span></a><span class="sd"> _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)</span>
+</span><span id="Func-3286"><a href="#Func-3286"><span class="linenos">3286</span></a><span class="sd"> for this function expression. These values are used to map this node to a name during parsing</span>
+</span><span id="Func-3287"><a href="#Func-3287"><span class="linenos">3287</span></a><span class="sd"> as well as to provide the function&#39;s name during SQL string generation. By default the SQL</span>
+</span><span id="Func-3288"><a href="#Func-3288"><span class="linenos">3288</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
+</span><span id="Func-3289"><a href="#Func-3289"><span class="linenos">3289</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Func-3290"><a href="#Func-3290"><span class="linenos">3290</span></a>
+</span><span id="Func-3291"><a href="#Func-3291"><span class="linenos">3291</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="Func-3292"><a href="#Func-3292"><span class="linenos">3292</span></a>
+</span><span id="Func-3293"><a href="#Func-3293"><span class="linenos">3293</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-3294"><a href="#Func-3294"><span class="linenos">3294</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-3295"><a href="#Func-3295"><span class="linenos">3295</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-3296"><a href="#Func-3296"><span class="linenos">3296</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-3297"><a href="#Func-3297"><span class="linenos">3297</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
+</span><span id="Func-3298"><a href="#Func-3298"><span class="linenos">3298</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-3299"><a href="#Func-3299"><span class="linenos">3299</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-3300"><a href="#Func-3300"><span class="linenos">3300</span></a>
+</span><span id="Func-3301"><a href="#Func-3301"><span class="linenos">3301</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-3302"><a href="#Func-3302"><span class="linenos">3302</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-3303"><a href="#Func-3303"><span class="linenos">3303</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Func-3304"><a href="#Func-3304"><span class="linenos">3304</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-3305"><a href="#Func-3305"><span class="linenos">3305</span></a>
+</span><span id="Func-3306"><a href="#Func-3306"><span class="linenos">3306</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-3307"><a href="#Func-3307"><span class="linenos">3307</span></a>
+</span><span id="Func-3308"><a href="#Func-3308"><span class="linenos">3308</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-3309"><a href="#Func-3309"><span class="linenos">3309</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-3310"><a href="#Func-3310"><span class="linenos">3310</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-3311"><a href="#Func-3311"><span class="linenos">3311</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
+</span><span id="Func-3312"><a href="#Func-3312"><span class="linenos">3312</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
+</span><span id="Func-3313"><a href="#Func-3313"><span class="linenos">3313</span></a> <span class="p">)</span>
+</span><span id="Func-3314"><a href="#Func-3314"><span class="linenos">3314</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-3315"><a href="#Func-3315"><span class="linenos">3315</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-3316"><a href="#Func-3316"><span class="linenos">3316</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-3317"><a href="#Func-3317"><span class="linenos">3317</span></a>
+</span><span id="Func-3318"><a href="#Func-3318"><span class="linenos">3318</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-3319"><a href="#Func-3319"><span class="linenos">3319</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-3320"><a href="#Func-3320"><span class="linenos">3320</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-3321"><a href="#Func-3321"><span class="linenos">3321</span></a>
+</span><span id="Func-3322"><a href="#Func-3322"><span class="linenos">3322</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-3323"><a href="#Func-3323"><span class="linenos">3323</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-3324"><a href="#Func-3324"><span class="linenos">3324</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>
@@ -30417,20 +30929,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-3252"><a href="#Func.from_arg_list-3252"><span class="linenos">3252</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.from_arg_list-3253"><a href="#Func.from_arg_list-3253"><span class="linenos">3253</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-3254"><a href="#Func.from_arg_list-3254"><span class="linenos">3254</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-3255"><a href="#Func.from_arg_list-3255"><span class="linenos">3255</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-3256"><a href="#Func.from_arg_list-3256"><span class="linenos">3256</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-3257"><a href="#Func.from_arg_list-3257"><span class="linenos">3257</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-3258"><a href="#Func.from_arg_list-3258"><span class="linenos">3258</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-3259"><a href="#Func.from_arg_list-3259"><span class="linenos">3259</span></a>
-</span><span id="Func.from_arg_list-3260"><a href="#Func.from_arg_list-3260"><span class="linenos">3260</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-3261"><a href="#Func.from_arg_list-3261"><span class="linenos">3261</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-3262"><a href="#Func.from_arg_list-3262"><span class="linenos">3262</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Func.from_arg_list-3263"><a href="#Func.from_arg_list-3263"><span class="linenos">3263</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-3264"><a href="#Func.from_arg_list-3264"><span class="linenos">3264</span></a>
-</span><span id="Func.from_arg_list-3265"><a href="#Func.from_arg_list-3265"><span class="linenos">3265</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-3293"><a href="#Func.from_arg_list-3293"><span class="linenos">3293</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.from_arg_list-3294"><a href="#Func.from_arg_list-3294"><span class="linenos">3294</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-3295"><a href="#Func.from_arg_list-3295"><span class="linenos">3295</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-3296"><a href="#Func.from_arg_list-3296"><span class="linenos">3296</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-3297"><a href="#Func.from_arg_list-3297"><span class="linenos">3297</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-3298"><a href="#Func.from_arg_list-3298"><span class="linenos">3298</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-3299"><a href="#Func.from_arg_list-3299"><span class="linenos">3299</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-3300"><a href="#Func.from_arg_list-3300"><span class="linenos">3300</span></a>
+</span><span id="Func.from_arg_list-3301"><a href="#Func.from_arg_list-3301"><span class="linenos">3301</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-3302"><a href="#Func.from_arg_list-3302"><span class="linenos">3302</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-3303"><a href="#Func.from_arg_list-3303"><span class="linenos">3303</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Func.from_arg_list-3304"><a href="#Func.from_arg_list-3304"><span class="linenos">3304</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-3305"><a href="#Func.from_arg_list-3305"><span class="linenos">3305</span></a>
+</span><span id="Func.from_arg_list-3306"><a href="#Func.from_arg_list-3306"><span class="linenos">3306</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>
@@ -30449,15 +30961,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-3267"><a href="#Func.sql_names-3267"><span class="linenos">3267</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.sql_names-3268"><a href="#Func.sql_names-3268"><span class="linenos">3268</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-3269"><a href="#Func.sql_names-3269"><span class="linenos">3269</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-3270"><a href="#Func.sql_names-3270"><span class="linenos">3270</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
-</span><span id="Func.sql_names-3271"><a href="#Func.sql_names-3271"><span class="linenos">3271</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
-</span><span id="Func.sql_names-3272"><a href="#Func.sql_names-3272"><span class="linenos">3272</span></a> <span class="p">)</span>
-</span><span id="Func.sql_names-3273"><a href="#Func.sql_names-3273"><span class="linenos">3273</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-3274"><a href="#Func.sql_names-3274"><span class="linenos">3274</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-3275"><a href="#Func.sql_names-3275"><span class="linenos">3275</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-3308"><a href="#Func.sql_names-3308"><span class="linenos">3308</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.sql_names-3309"><a href="#Func.sql_names-3309"><span class="linenos">3309</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-3310"><a href="#Func.sql_names-3310"><span class="linenos">3310</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-3311"><a href="#Func.sql_names-3311"><span class="linenos">3311</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
+</span><span id="Func.sql_names-3312"><a href="#Func.sql_names-3312"><span class="linenos">3312</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
+</span><span id="Func.sql_names-3313"><a href="#Func.sql_names-3313"><span class="linenos">3313</span></a> <span class="p">)</span>
+</span><span id="Func.sql_names-3314"><a href="#Func.sql_names-3314"><span class="linenos">3314</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-3315"><a href="#Func.sql_names-3315"><span class="linenos">3315</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-3316"><a href="#Func.sql_names-3316"><span class="linenos">3316</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>
@@ -30476,9 +30988,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-3277"><a href="#Func.sql_name-3277"><span class="linenos">3277</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.sql_name-3278"><a href="#Func.sql_name-3278"><span class="linenos">3278</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-3279"><a href="#Func.sql_name-3279"><span class="linenos">3279</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-3318"><a href="#Func.sql_name-3318"><span class="linenos">3318</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.sql_name-3319"><a href="#Func.sql_name-3319"><span class="linenos">3319</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-3320"><a href="#Func.sql_name-3320"><span class="linenos">3320</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>
@@ -30497,9 +31009,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-3281"><a href="#Func.default_parser_mappings-3281"><span class="linenos">3281</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.default_parser_mappings-3282"><a href="#Func.default_parser_mappings-3282"><span class="linenos">3282</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-3283"><a href="#Func.default_parser_mappings-3283"><span class="linenos">3283</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-3322"><a href="#Func.default_parser_mappings-3322"><span class="linenos">3322</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.default_parser_mappings-3323"><a href="#Func.default_parser_mappings-3323"><span class="linenos">3323</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-3324"><a href="#Func.default_parser_mappings-3324"><span class="linenos">3324</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>
@@ -30569,8 +31081,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-3286"><a href="#AggFunc-3286"><span class="linenos">3286</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-3287"><a href="#AggFunc-3287"><span class="linenos">3287</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AggFunc-3327"><a href="#AggFunc-3327"><span class="linenos">3327</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-3328"><a href="#AggFunc-3328"><span class="linenos">3328</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30646,8 +31158,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-3290"><a href="#Abs-3290"><span class="linenos">3290</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-3291"><a href="#Abs-3291"><span class="linenos">3291</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Abs-3331"><a href="#Abs-3331"><span class="linenos">3331</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-3332"><a href="#Abs-3332"><span class="linenos">3332</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30723,9 +31235,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Anonymous"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Anonymous-3294"><a href="#Anonymous-3294"><span class="linenos">3294</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-3295"><a href="#Anonymous-3295"><span class="linenos">3295</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Anonymous-3296"><a href="#Anonymous-3296"><span class="linenos">3296</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Anonymous-3335"><a href="#Anonymous-3335"><span class="linenos">3335</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-3336"><a href="#Anonymous-3336"><span class="linenos">3336</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Anonymous-3337"><a href="#Anonymous-3337"><span class="linenos">3337</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -30801,9 +31313,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-3301"><a href="#Hll-3301"><span class="linenos">3301</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-3302"><a href="#Hll-3302"><span class="linenos">3302</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Hll-3303"><a href="#Hll-3303"><span class="linenos">3303</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-3342"><a href="#Hll-3342"><span class="linenos">3342</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-3343"><a href="#Hll-3343"><span class="linenos">3343</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Hll-3344"><a href="#Hll-3344"><span class="linenos">3344</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -30879,8 +31391,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ApproxDistinct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxDistinct-3306"><a href="#ApproxDistinct-3306"><span class="linenos">3306</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-3307"><a href="#ApproxDistinct-3307"><span class="linenos">3307</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxDistinct-3347"><a href="#ApproxDistinct-3347"><span class="linenos">3347</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-3348"><a href="#ApproxDistinct-3348"><span class="linenos">3348</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -30956,9 +31468,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-3310"><a href="#Array-3310"><span class="linenos">3310</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-3311"><a href="#Array-3311"><span class="linenos">3311</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-3312"><a href="#Array-3312"><span class="linenos">3312</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-3351"><a href="#Array-3351"><span class="linenos">3351</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-3352"><a href="#Array-3352"><span class="linenos">3352</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Array-3353"><a href="#Array-3353"><span class="linenos">3353</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -31034,8 +31546,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-3316"><a href="#ToChar-3316"><span class="linenos">3316</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-3317"><a href="#ToChar-3317"><span class="linenos">3317</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="ToChar-3357"><a href="#ToChar-3357"><span class="linenos">3357</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-3358"><a href="#ToChar-3358"><span class="linenos">3358</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -31111,8 +31623,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-3320"><a href="#GenerateSeries-3320"><span class="linenos">3320</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-3321"><a href="#GenerateSeries-3321"><span class="linenos">3321</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;step&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GenerateSeries-3361"><a href="#GenerateSeries-3361"><span class="linenos">3361</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-3362"><a href="#GenerateSeries-3362"><span class="linenos">3362</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;step&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -31188,8 +31700,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-3324"><a href="#ArrayAgg-3324"><span class="linenos">3324</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-3325"><a href="#ArrayAgg-3325"><span class="linenos">3325</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAgg-3365"><a href="#ArrayAgg-3365"><span class="linenos">3365</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-3366"><a href="#ArrayAgg-3366"><span class="linenos">3366</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -31265,8 +31777,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-3328"><a href="#ArrayAll-3328"><span class="linenos">3328</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-3329"><a href="#ArrayAll-3329"><span class="linenos">3329</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-3369"><a href="#ArrayAll-3369"><span class="linenos">3369</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-3370"><a href="#ArrayAll-3370"><span class="linenos">3370</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -31342,8 +31854,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-3332"><a href="#ArrayAny-3332"><span class="linenos">3332</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-3333"><a href="#ArrayAny-3333"><span class="linenos">3333</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAny-3373"><a href="#ArrayAny-3373"><span class="linenos">3373</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-3374"><a href="#ArrayAny-3374"><span class="linenos">3374</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -31419,9 +31931,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayConcat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayConcat-3336"><a href="#ArrayConcat-3336"><span class="linenos">3336</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-3337"><a href="#ArrayConcat-3337"><span class="linenos">3337</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="ArrayConcat-3338"><a href="#ArrayConcat-3338"><span class="linenos">3338</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-3377"><a href="#ArrayConcat-3377"><span class="linenos">3377</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-3378"><a href="#ArrayConcat-3378"><span class="linenos">3378</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3379"><a href="#ArrayConcat-3379"><span class="linenos">3379</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -31497,8 +32009,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-3341"><a href="#ArrayContains-3341"><span class="linenos">3341</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-3342"><a href="#ArrayContains-3342"><span class="linenos">3342</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContains-3382"><a href="#ArrayContains-3382"><span class="linenos">3382</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-3383"><a href="#ArrayContains-3383"><span class="linenos">3383</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -31574,8 +32086,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-3345"><a href="#ArrayContained-3345"><span class="linenos">3345</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-3346"><a href="#ArrayContained-3346"><span class="linenos">3346</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContained-3386"><a href="#ArrayContained-3386"><span class="linenos">3386</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-3387"><a href="#ArrayContained-3387"><span class="linenos">3387</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -31638,9 +32150,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-3349"><a href="#ArrayFilter-3349"><span class="linenos">3349</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-3350"><a href="#ArrayFilter-3350"><span class="linenos">3350</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="ArrayFilter-3351"><a href="#ArrayFilter-3351"><span class="linenos">3351</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-3390"><a href="#ArrayFilter-3390"><span class="linenos">3390</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-3391"><a href="#ArrayFilter-3391"><span class="linenos">3391</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="ArrayFilter-3392"><a href="#ArrayFilter-3392"><span class="linenos">3392</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>
@@ -31716,8 +32228,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayJoin"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayJoin-3354"><a href="#ArrayJoin-3354"><span class="linenos">3354</span></a><span class="k">class</span> <span class="nc">ArrayJoin</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ArrayJoin-3355"><a href="#ArrayJoin-3355"><span class="linenos">3355</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayJoin-3395"><a href="#ArrayJoin-3395"><span class="linenos">3395</span></a><span class="k">class</span> <span class="nc">ArrayJoin</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ArrayJoin-3396"><a href="#ArrayJoin-3396"><span class="linenos">3396</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -31793,8 +32305,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArraySize"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySize-3358"><a href="#ArraySize-3358"><span class="linenos">3358</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-3359"><a href="#ArraySize-3359"><span class="linenos">3359</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySize-3399"><a href="#ArraySize-3399"><span class="linenos">3399</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-3400"><a href="#ArraySize-3400"><span class="linenos">3400</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -31870,8 +32382,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-3362"><a href="#ArraySort-3362"><span class="linenos">3362</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-3363"><a href="#ArraySort-3363"><span class="linenos">3363</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3403"><a href="#ArraySort-3403"><span class="linenos">3403</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-3404"><a href="#ArraySort-3404"><span class="linenos">3404</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -31947,8 +32459,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-3366"><a href="#ArraySum-3366"><span class="linenos">3366</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-3367"><a href="#ArraySum-3367"><span class="linenos">3367</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySum-3407"><a href="#ArraySum-3407"><span class="linenos">3407</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-3408"><a href="#ArraySum-3408"><span class="linenos">3408</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -32024,8 +32536,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-3370"><a href="#ArrayUnionAgg-3370"><span class="linenos">3370</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-3371"><a href="#ArrayUnionAgg-3371"><span class="linenos">3371</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayUnionAgg-3411"><a href="#ArrayUnionAgg-3411"><span class="linenos">3411</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-3412"><a href="#ArrayUnionAgg-3412"><span class="linenos">3412</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -32101,8 +32613,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-3374"><a href="#Avg-3374"><span class="linenos">3374</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-3375"><a href="#Avg-3375"><span class="linenos">3375</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Avg-3415"><a href="#Avg-3415"><span class="linenos">3415</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-3416"><a href="#Avg-3416"><span class="linenos">3416</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -32178,8 +32690,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-3378"><a href="#AnyValue-3378"><span class="linenos">3378</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-3379"><a href="#AnyValue-3379"><span class="linenos">3379</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AnyValue-3419"><a href="#AnyValue-3419"><span class="linenos">3419</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-3420"><a href="#AnyValue-3420"><span class="linenos">3420</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -32255,8 +32767,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Case"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Case-3382"><a href="#Case-3382"><span class="linenos">3382</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-3383"><a href="#Case-3383"><span class="linenos">3383</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;ifs&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Case-3423"><a href="#Case-3423"><span class="linenos">3423</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-3424"><a href="#Case-3424"><span class="linenos">3424</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;ifs&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -32332,23 +32844,23 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Cast"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Cast-3386"><a href="#Cast-3386"><span class="linenos">3386</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-3387"><a href="#Cast-3387"><span class="linenos">3387</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="Cast-3388"><a href="#Cast-3388"><span class="linenos">3388</span></a>
-</span><span id="Cast-3389"><a href="#Cast-3389"><span class="linenos">3389</span></a> <span class="nd">@property</span>
-</span><span id="Cast-3390"><a href="#Cast-3390"><span class="linenos">3390</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-3391"><a href="#Cast-3391"><span class="linenos">3391</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-3392"><a href="#Cast-3392"><span class="linenos">3392</span></a>
-</span><span id="Cast-3393"><a href="#Cast-3393"><span class="linenos">3393</span></a> <span class="nd">@property</span>
-</span><span id="Cast-3394"><a href="#Cast-3394"><span class="linenos">3394</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Cast-3395"><a href="#Cast-3395"><span class="linenos">3395</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-3396"><a href="#Cast-3396"><span class="linenos">3396</span></a>
-</span><span id="Cast-3397"><a href="#Cast-3397"><span class="linenos">3397</span></a> <span class="nd">@property</span>
-</span><span id="Cast-3398"><a href="#Cast-3398"><span class="linenos">3398</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Cast-3399"><a href="#Cast-3399"><span class="linenos">3399</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-3400"><a href="#Cast-3400"><span class="linenos">3400</span></a>
-</span><span id="Cast-3401"><a href="#Cast-3401"><span class="linenos">3401</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Cast-3402"><a href="#Cast-3402"><span class="linenos">3402</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast-3427"><a href="#Cast-3427"><span class="linenos">3427</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-3428"><a href="#Cast-3428"><span class="linenos">3428</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="Cast-3429"><a href="#Cast-3429"><span class="linenos">3429</span></a>
+</span><span id="Cast-3430"><a href="#Cast-3430"><span class="linenos">3430</span></a> <span class="nd">@property</span>
+</span><span id="Cast-3431"><a href="#Cast-3431"><span class="linenos">3431</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-3432"><a href="#Cast-3432"><span class="linenos">3432</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-3433"><a href="#Cast-3433"><span class="linenos">3433</span></a>
+</span><span id="Cast-3434"><a href="#Cast-3434"><span class="linenos">3434</span></a> <span class="nd">@property</span>
+</span><span id="Cast-3435"><a href="#Cast-3435"><span class="linenos">3435</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Cast-3436"><a href="#Cast-3436"><span class="linenos">3436</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-3437"><a href="#Cast-3437"><span class="linenos">3437</span></a>
+</span><span id="Cast-3438"><a href="#Cast-3438"><span class="linenos">3438</span></a> <span class="nd">@property</span>
+</span><span id="Cast-3439"><a href="#Cast-3439"><span class="linenos">3439</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Cast-3440"><a href="#Cast-3440"><span class="linenos">3440</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-3441"><a href="#Cast-3441"><span class="linenos">3441</span></a>
+</span><span id="Cast-3442"><a href="#Cast-3442"><span class="linenos">3442</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Cast-3443"><a href="#Cast-3443"><span class="linenos">3443</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
</span></pre></div>
@@ -32395,8 +32907,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Cast.is_type"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.is_type-3401"><a href="#Cast.is_type-3401"><span class="linenos">3401</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Cast.is_type-3402"><a href="#Cast.is_type-3402"><span class="linenos">3402</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.is_type-3442"><a href="#Cast.is_type-3442"><span class="linenos">3442</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Cast.is_type-3443"><a href="#Cast.is_type-3443"><span class="linenos">3443</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
</span></pre></div>
@@ -32472,8 +32984,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Collate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Collate-3405"><a href="#Collate-3405"><span class="linenos">3405</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Collate-3406"><a href="#Collate-3406"><span class="linenos">3406</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Collate-3446"><a href="#Collate-3446"><span class="linenos">3446</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Collate-3447"><a href="#Collate-3447"><span class="linenos">3447</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -32536,8 +33048,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TryCast"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TryCast-3409"><a href="#TryCast-3409"><span class="linenos">3409</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-3410"><a href="#TryCast-3410"><span class="linenos">3410</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TryCast-3450"><a href="#TryCast-3450"><span class="linenos">3450</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-3451"><a href="#TryCast-3451"><span class="linenos">3451</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -32617,9 +33129,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Ceil"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Ceil-3413"><a href="#Ceil-3413"><span class="linenos">3413</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-3414"><a href="#Ceil-3414"><span class="linenos">3414</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Ceil-3415"><a href="#Ceil-3415"><span class="linenos">3415</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-3454"><a href="#Ceil-3454"><span class="linenos">3454</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-3455"><a href="#Ceil-3455"><span class="linenos">3455</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3456"><a href="#Ceil-3456"><span class="linenos">3456</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CEIL&quot;</span><span class="p">,</span> <span class="s2">&quot;CEILING&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -32695,9 +33207,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Coalesce"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Coalesce-3418"><a href="#Coalesce-3418"><span class="linenos">3418</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-3419"><a href="#Coalesce-3419"><span class="linenos">3419</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Coalesce-3420"><a href="#Coalesce-3420"><span class="linenos">3420</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Coalesce-3459"><a href="#Coalesce-3459"><span class="linenos">3459</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-3460"><a href="#Coalesce-3460"><span class="linenos">3460</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3461"><a href="#Coalesce-3461"><span class="linenos">3461</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -32773,9 +33285,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Concat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Concat-3423"><a href="#Concat-3423"><span class="linenos">3423</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-3424"><a href="#Concat-3424"><span class="linenos">3424</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="Concat-3425"><a href="#Concat-3425"><span class="linenos">3425</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-3464"><a href="#Concat-3464"><span class="linenos">3464</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-3465"><a href="#Concat-3465"><span class="linenos">3465</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="Concat-3466"><a href="#Concat-3466"><span class="linenos">3466</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -32851,8 +33363,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ConcatWs"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ConcatWs-3428"><a href="#ConcatWs-3428"><span class="linenos">3428</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-3429"><a href="#ConcatWs-3429"><span class="linenos">3429</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-3469"><a href="#ConcatWs-3469"><span class="linenos">3469</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-3470"><a href="#ConcatWs-3470"><span class="linenos">3470</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>
@@ -32928,8 +33440,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Count"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Count-3432"><a href="#Count-3432"><span class="linenos">3432</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-3433"><a href="#Count-3433"><span class="linenos">3433</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Count-3473"><a href="#Count-3473"><span class="linenos">3473</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-3474"><a href="#Count-3474"><span class="linenos">3474</span></a> <span class="n">arg_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>
@@ -33005,8 +33517,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CountIf"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CountIf-3436"><a href="#CountIf-3436"><span class="linenos">3436</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-3437"><a href="#CountIf-3437"><span class="linenos">3437</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CountIf-3477"><a href="#CountIf-3477"><span class="linenos">3477</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-3478"><a href="#CountIf-3478"><span class="linenos">3478</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -33082,8 +33594,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CurrentDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDate-3440"><a href="#CurrentDate-3440"><span class="linenos">3440</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-3441"><a href="#CurrentDate-3441"><span class="linenos">3441</span></a> <span class="n">arg_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-3481"><a href="#CurrentDate-3481"><span class="linenos">3481</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-3482"><a href="#CurrentDate-3482"><span class="linenos">3482</span></a> <span class="n">arg_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>
@@ -33159,8 +33671,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CurrentDatetime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDatetime-3444"><a href="#CurrentDatetime-3444"><span class="linenos">3444</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-3445"><a href="#CurrentDatetime-3445"><span class="linenos">3445</span></a> <span class="n">arg_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-3485"><a href="#CurrentDatetime-3485"><span class="linenos">3485</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-3486"><a href="#CurrentDatetime-3486"><span class="linenos">3486</span></a> <span class="n">arg_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>
@@ -33236,8 +33748,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CurrentTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTime-3448"><a href="#CurrentTime-3448"><span class="linenos">3448</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-3449"><a href="#CurrentTime-3449"><span class="linenos">3449</span></a> <span class="n">arg_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-3489"><a href="#CurrentTime-3489"><span class="linenos">3489</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-3490"><a href="#CurrentTime-3490"><span class="linenos">3490</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -33313,8 +33825,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CurrentTimestamp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTimestamp-3452"><a href="#CurrentTimestamp-3452"><span class="linenos">3452</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-3453"><a href="#CurrentTimestamp-3453"><span class="linenos">3453</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTimestamp-3493"><a href="#CurrentTimestamp-3493"><span class="linenos">3493</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-3494"><a href="#CurrentTimestamp-3494"><span class="linenos">3494</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -33379,6 +33891,83 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
+ <section id="CurrentUser">
+ <input id="CurrentUser-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">CurrentUser</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="CurrentUser-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#CurrentUser"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentUser-3497"><a href="#CurrentUser-3497"><span class="linenos">3497</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-3498"><a href="#CurrentUser-3498"><span class="linenos">3498</span></a> <span class="n">arg_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>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="CurrentUser.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="CurrentUser.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="CurrentUser.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="CurrentUser.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="CurrentUser.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="CurrentUser.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="CurrentUser.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="CurrentUser.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="CurrentUser.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="CurrentUser.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CurrentUser.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="CurrentUser.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="CurrentUser.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="CurrentUser.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="CurrentUser.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="CurrentUser.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="CurrentUser.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="CurrentUser.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="CurrentUser.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="CurrentUser.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="CurrentUser.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="CurrentUser.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="CurrentUser.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="CurrentUser.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="CurrentUser.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="CurrentUser.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="CurrentUser.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="CurrentUser.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="CurrentUser.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CurrentUser.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="CurrentUser.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="CurrentUser.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="CurrentUser.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="CurrentUser.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="CurrentUser.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="CurrentUser.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="CurrentUser.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="CurrentUser.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="CurrentUser.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="CurrentUser.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="CurrentUser.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ <div><dt><a href="#Condition">Condition</a></dt>
+ <dd id="CurrentUser.and_" class="function"><a href="#Condition.and_">and_</a></dd>
+ <dd id="CurrentUser.or_" class="function"><a href="#Condition.or_">or_</a></dd>
+ <dd id="CurrentUser.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="DateAdd">
<input id="DateAdd-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -33390,8 +33979,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateAdd-3456"><a href="#DateAdd-3456"><span class="linenos">3456</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="DateAdd-3457"><a href="#DateAdd-3457"><span class="linenos">3457</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3501"><a href="#DateAdd-3501"><span class="linenos">3501</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="DateAdd-3502"><a href="#DateAdd-3502"><span class="linenos">3502</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -33470,8 +34059,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateSub-3460"><a href="#DateSub-3460"><span class="linenos">3460</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="DateSub-3461"><a href="#DateSub-3461"><span class="linenos">3461</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3505"><a href="#DateSub-3505"><span class="linenos">3505</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="DateSub-3506"><a href="#DateSub-3506"><span class="linenos">3506</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -33550,9 +34139,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateDiff-3464"><a href="#DateDiff-3464"><span class="linenos">3464</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-3465"><a href="#DateDiff-3465"><span class="linenos">3465</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-3466"><a href="#DateDiff-3466"><span class="linenos">3466</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3509"><a href="#DateDiff-3509"><span class="linenos">3509</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-3510"><a href="#DateDiff-3510"><span class="linenos">3510</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-3511"><a href="#DateDiff-3511"><span class="linenos">3511</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -33631,8 +34220,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc-3469"><a href="#DateTrunc-3469"><span class="linenos">3469</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-3470"><a href="#DateTrunc-3470"><span class="linenos">3470</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc-3514"><a href="#DateTrunc-3514"><span class="linenos">3514</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-3515"><a href="#DateTrunc-3515"><span class="linenos">3515</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -33708,8 +34297,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DatetimeAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeAdd-3473"><a href="#DatetimeAdd-3473"><span class="linenos">3473</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="DatetimeAdd-3474"><a href="#DatetimeAdd-3474"><span class="linenos">3474</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3518"><a href="#DatetimeAdd-3518"><span class="linenos">3518</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="DatetimeAdd-3519"><a href="#DatetimeAdd-3519"><span class="linenos">3519</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -33788,8 +34377,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DatetimeSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeSub-3477"><a href="#DatetimeSub-3477"><span class="linenos">3477</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="DatetimeSub-3478"><a href="#DatetimeSub-3478"><span class="linenos">3478</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3522"><a href="#DatetimeSub-3522"><span class="linenos">3522</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="DatetimeSub-3523"><a href="#DatetimeSub-3523"><span class="linenos">3523</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -33868,8 +34457,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DatetimeDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeDiff-3481"><a href="#DatetimeDiff-3481"><span class="linenos">3481</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-3482"><a href="#DatetimeDiff-3482"><span class="linenos">3482</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3526"><a href="#DatetimeDiff-3526"><span class="linenos">3526</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-3527"><a href="#DatetimeDiff-3527"><span class="linenos">3527</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -33948,8 +34537,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DatetimeTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeTrunc-3485"><a href="#DatetimeTrunc-3485"><span class="linenos">3485</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-3486"><a href="#DatetimeTrunc-3486"><span class="linenos">3486</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3530"><a href="#DatetimeTrunc-3530"><span class="linenos">3530</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-3531"><a href="#DatetimeTrunc-3531"><span class="linenos">3531</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -34028,8 +34617,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DayOfWeek"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfWeek-3489"><a href="#DayOfWeek-3489"><span class="linenos">3489</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-3490"><a href="#DayOfWeek-3490"><span class="linenos">3490</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-3534"><a href="#DayOfWeek-3534"><span class="linenos">3534</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-3535"><a href="#DayOfWeek-3535"><span class="linenos">3535</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>
@@ -34105,8 +34694,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DayOfMonth"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfMonth-3493"><a href="#DayOfMonth-3493"><span class="linenos">3493</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-3494"><a href="#DayOfMonth-3494"><span class="linenos">3494</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-3538"><a href="#DayOfMonth-3538"><span class="linenos">3538</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-3539"><a href="#DayOfMonth-3539"><span class="linenos">3539</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>
@@ -34182,8 +34771,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DayOfYear"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfYear-3497"><a href="#DayOfYear-3497"><span class="linenos">3497</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-3498"><a href="#DayOfYear-3498"><span class="linenos">3498</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-3542"><a href="#DayOfYear-3542"><span class="linenos">3542</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-3543"><a href="#DayOfYear-3543"><span class="linenos">3543</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>
@@ -34259,8 +34848,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#WeekOfYear"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WeekOfYear-3501"><a href="#WeekOfYear-3501"><span class="linenos">3501</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-3502"><a href="#WeekOfYear-3502"><span class="linenos">3502</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-3546"><a href="#WeekOfYear-3546"><span class="linenos">3546</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-3547"><a href="#WeekOfYear-3547"><span class="linenos">3547</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>
@@ -34336,8 +34925,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#LastDateOfMonth"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LastDateOfMonth-3505"><a href="#LastDateOfMonth-3505"><span class="linenos">3505</span></a><span class="k">class</span> <span class="nc">LastDateOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="LastDateOfMonth-3506"><a href="#LastDateOfMonth-3506"><span class="linenos">3506</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LastDateOfMonth-3550"><a href="#LastDateOfMonth-3550"><span class="linenos">3550</span></a><span class="k">class</span> <span class="nc">LastDateOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="LastDateOfMonth-3551"><a href="#LastDateOfMonth-3551"><span class="linenos">3551</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -34413,8 +35002,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Extract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Extract-3509"><a href="#Extract-3509"><span class="linenos">3509</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-3510"><a href="#Extract-3510"><span class="linenos">3510</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-3554"><a href="#Extract-3554"><span class="linenos">3554</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-3555"><a href="#Extract-3555"><span class="linenos">3555</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -34490,8 +35079,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimestampAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampAdd-3513"><a href="#TimestampAdd-3513"><span class="linenos">3513</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-3514"><a href="#TimestampAdd-3514"><span class="linenos">3514</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3558"><a href="#TimestampAdd-3558"><span class="linenos">3558</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-3559"><a href="#TimestampAdd-3559"><span class="linenos">3559</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -34570,8 +35159,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimestampSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampSub-3517"><a href="#TimestampSub-3517"><span class="linenos">3517</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-3518"><a href="#TimestampSub-3518"><span class="linenos">3518</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3562"><a href="#TimestampSub-3562"><span class="linenos">3562</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-3563"><a href="#TimestampSub-3563"><span class="linenos">3563</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -34650,8 +35239,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimestampDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampDiff-3521"><a href="#TimestampDiff-3521"><span class="linenos">3521</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-3522"><a href="#TimestampDiff-3522"><span class="linenos">3522</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3566"><a href="#TimestampDiff-3566"><span class="linenos">3566</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-3567"><a href="#TimestampDiff-3567"><span class="linenos">3567</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -34730,8 +35319,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimestampTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampTrunc-3525"><a href="#TimestampTrunc-3525"><span class="linenos">3525</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-3526"><a href="#TimestampTrunc-3526"><span class="linenos">3526</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3570"><a href="#TimestampTrunc-3570"><span class="linenos">3570</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-3571"><a href="#TimestampTrunc-3571"><span class="linenos">3571</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -34810,8 +35399,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeAdd-3529"><a href="#TimeAdd-3529"><span class="linenos">3529</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-3530"><a href="#TimeAdd-3530"><span class="linenos">3530</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3574"><a href="#TimeAdd-3574"><span class="linenos">3574</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-3575"><a href="#TimeAdd-3575"><span class="linenos">3575</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -34890,8 +35479,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeSub-3533"><a href="#TimeSub-3533"><span class="linenos">3533</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-3534"><a href="#TimeSub-3534"><span class="linenos">3534</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3578"><a href="#TimeSub-3578"><span class="linenos">3578</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-3579"><a href="#TimeSub-3579"><span class="linenos">3579</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -34970,8 +35559,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeDiff-3537"><a href="#TimeDiff-3537"><span class="linenos">3537</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-3538"><a href="#TimeDiff-3538"><span class="linenos">3538</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3582"><a href="#TimeDiff-3582"><span class="linenos">3582</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-3583"><a href="#TimeDiff-3583"><span class="linenos">3583</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -35050,8 +35639,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeTrunc-3541"><a href="#TimeTrunc-3541"><span class="linenos">3541</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-3542"><a href="#TimeTrunc-3542"><span class="linenos">3542</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3586"><a href="#TimeTrunc-3586"><span class="linenos">3586</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-3587"><a href="#TimeTrunc-3587"><span class="linenos">3587</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -35130,9 +35719,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateFromParts"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateFromParts-3545"><a href="#DateFromParts-3545"><span class="linenos">3545</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-3546"><a href="#DateFromParts-3546"><span class="linenos">3546</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
-</span><span id="DateFromParts-3547"><a href="#DateFromParts-3547"><span class="linenos">3547</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-3590"><a href="#DateFromParts-3590"><span class="linenos">3590</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-3591"><a href="#DateFromParts-3591"><span class="linenos">3591</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="DateFromParts-3592"><a href="#DateFromParts-3592"><span class="linenos">3592</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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>
@@ -35208,8 +35797,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateStrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateStrToDate-3550"><a href="#DateStrToDate-3550"><span class="linenos">3550</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-3551"><a href="#DateStrToDate-3551"><span class="linenos">3551</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateStrToDate-3595"><a href="#DateStrToDate-3595"><span class="linenos">3595</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-3596"><a href="#DateStrToDate-3596"><span class="linenos">3596</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -35285,8 +35874,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateToDateStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDateStr-3554"><a href="#DateToDateStr-3554"><span class="linenos">3554</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-3555"><a href="#DateToDateStr-3555"><span class="linenos">3555</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDateStr-3599"><a href="#DateToDateStr-3599"><span class="linenos">3599</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-3600"><a href="#DateToDateStr-3600"><span class="linenos">3600</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -35362,8 +35951,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateToDi"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDi-3558"><a href="#DateToDi-3558"><span class="linenos">3558</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-3559"><a href="#DateToDi-3559"><span class="linenos">3559</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDi-3603"><a href="#DateToDi-3603"><span class="linenos">3603</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-3604"><a href="#DateToDi-3604"><span class="linenos">3604</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -35439,8 +36028,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Day"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Day-3562"><a href="#Day-3562"><span class="linenos">3562</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-3563"><a href="#Day-3563"><span class="linenos">3563</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Day-3607"><a href="#Day-3607"><span class="linenos">3607</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-3608"><a href="#Day-3608"><span class="linenos">3608</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -35516,8 +36105,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Decode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Decode-3566"><a href="#Decode-3566"><span class="linenos">3566</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-3567"><a href="#Decode-3567"><span class="linenos">3567</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3611"><a href="#Decode-3611"><span class="linenos">3611</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-3612"><a href="#Decode-3612"><span class="linenos">3612</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -35593,8 +36182,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DiToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DiToDate-3570"><a href="#DiToDate-3570"><span class="linenos">3570</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-3571"><a href="#DiToDate-3571"><span class="linenos">3571</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DiToDate-3615"><a href="#DiToDate-3615"><span class="linenos">3615</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-3616"><a href="#DiToDate-3616"><span class="linenos">3616</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -35670,8 +36259,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Encode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Encode-3574"><a href="#Encode-3574"><span class="linenos">3574</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-3575"><a href="#Encode-3575"><span class="linenos">3575</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3619"><a href="#Encode-3619"><span class="linenos">3619</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-3620"><a href="#Encode-3620"><span class="linenos">3620</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;charset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -35747,8 +36336,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Exp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Exp-3578"><a href="#Exp-3578"><span class="linenos">3578</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-3579"><a href="#Exp-3579"><span class="linenos">3579</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Exp-3623"><a href="#Exp-3623"><span class="linenos">3623</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-3624"><a href="#Exp-3624"><span class="linenos">3624</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -35824,8 +36413,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Explode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Explode-3582"><a href="#Explode-3582"><span class="linenos">3582</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-3583"><a href="#Explode-3583"><span class="linenos">3583</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Explode-3627"><a href="#Explode-3627"><span class="linenos">3627</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-3628"><a href="#Explode-3628"><span class="linenos">3628</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -35901,8 +36490,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ExponentialTimeDecayedAvg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ExponentialTimeDecayedAvg-3586"><a href="#ExponentialTimeDecayedAvg-3586"><span class="linenos">3586</span></a><span class="k">class</span> <span class="nc">ExponentialTimeDecayedAvg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="ExponentialTimeDecayedAvg-3587"><a href="#ExponentialTimeDecayedAvg-3587"><span class="linenos">3587</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;time&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;decay&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="ExponentialTimeDecayedAvg-3631"><a href="#ExponentialTimeDecayedAvg-3631"><span class="linenos">3631</span></a><span class="k">class</span> <span class="nc">ExponentialTimeDecayedAvg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="ExponentialTimeDecayedAvg-3632"><a href="#ExponentialTimeDecayedAvg-3632"><span class="linenos">3632</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;time&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;decay&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -35978,8 +36567,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Floor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Floor-3590"><a href="#Floor-3590"><span class="linenos">3590</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-3591"><a href="#Floor-3591"><span class="linenos">3591</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3635"><a href="#Floor-3635"><span class="linenos">3635</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-3636"><a href="#Floor-3636"><span class="linenos">3636</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -36055,9 +36644,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Greatest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Greatest-3594"><a href="#Greatest-3594"><span class="linenos">3594</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-3595"><a href="#Greatest-3595"><span class="linenos">3595</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3596"><a href="#Greatest-3596"><span class="linenos">3596</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-3639"><a href="#Greatest-3639"><span class="linenos">3639</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-3640"><a href="#Greatest-3640"><span class="linenos">3640</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Greatest-3641"><a href="#Greatest-3641"><span class="linenos">3641</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -36133,8 +36722,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#GroupConcat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GroupConcat-3599"><a href="#GroupConcat-3599"><span class="linenos">3599</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="GroupConcat-3600"><a href="#GroupConcat-3600"><span class="linenos">3600</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3644"><a href="#GroupConcat-3644"><span class="linenos">3644</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="GroupConcat-3645"><a href="#GroupConcat-3645"><span class="linenos">3645</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -36210,8 +36799,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#GroupUniqArray"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GroupUniqArray-3603"><a href="#GroupUniqArray-3603"><span class="linenos">3603</span></a><span class="k">class</span> <span class="nc">GroupUniqArray</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="GroupUniqArray-3604"><a href="#GroupUniqArray-3604"><span class="linenos">3604</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;size&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="GroupUniqArray-3648"><a href="#GroupUniqArray-3648"><span class="linenos">3648</span></a><span class="k">class</span> <span class="nc">GroupUniqArray</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="GroupUniqArray-3649"><a href="#GroupUniqArray-3649"><span class="linenos">3649</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -36287,8 +36876,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Hex"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Hex-3607"><a href="#Hex-3607"><span class="linenos">3607</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-3608"><a href="#Hex-3608"><span class="linenos">3608</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Hex-3652"><a href="#Hex-3652"><span class="linenos">3652</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-3653"><a href="#Hex-3653"><span class="linenos">3653</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -36364,8 +36953,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Histogram"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Histogram-3611"><a href="#Histogram-3611"><span class="linenos">3611</span></a><span class="k">class</span> <span class="nc">Histogram</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Histogram-3612"><a href="#Histogram-3612"><span class="linenos">3612</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;bins&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="Histogram-3656"><a href="#Histogram-3656"><span class="linenos">3656</span></a><span class="k">class</span> <span class="nc">Histogram</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Histogram-3657"><a href="#Histogram-3657"><span class="linenos">3657</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;bins&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -36441,8 +37030,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#If"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="If-3615"><a href="#If-3615"><span class="linenos">3615</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-3616"><a href="#If-3616"><span class="linenos">3616</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;true&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;false&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="If-3660"><a href="#If-3660"><span class="linenos">3660</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-3661"><a href="#If-3661"><span class="linenos">3661</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -36518,9 +37107,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#IfNull"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IfNull-3619"><a href="#IfNull-3619"><span class="linenos">3619</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="IfNull-3620"><a href="#IfNull-3620"><span class="linenos">3620</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="IfNull-3621"><a href="#IfNull-3621"><span class="linenos">3621</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IfNull-3664"><a href="#IfNull-3664"><span class="linenos">3664</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="IfNull-3665"><a href="#IfNull-3665"><span class="linenos">3665</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="IfNull-3666"><a href="#IfNull-3666"><span class="linenos">3666</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -36596,8 +37185,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Initcap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Initcap-3624"><a href="#Initcap-3624"><span class="linenos">3624</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-3625"><a href="#Initcap-3625"><span class="linenos">3625</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Initcap-3669"><a href="#Initcap-3669"><span class="linenos">3669</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-3670"><a href="#Initcap-3670"><span class="linenos">3670</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -36673,8 +37262,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONKeyValue"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONKeyValue-3628"><a href="#JSONKeyValue-3628"><span class="linenos">3628</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-3629"><a href="#JSONKeyValue-3629"><span class="linenos">3629</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-3673"><a href="#JSONKeyValue-3673"><span class="linenos">3673</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-3674"><a href="#JSONKeyValue-3674"><span class="linenos">3674</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -36737,15 +37326,15 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONObject"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONObject-3632"><a href="#JSONObject-3632"><span class="linenos">3632</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-3633"><a href="#JSONObject-3633"><span class="linenos">3633</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JSONObject-3634"><a href="#JSONObject-3634"><span class="linenos">3634</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-3635"><a href="#JSONObject-3635"><span class="linenos">3635</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-3636"><a href="#JSONObject-3636"><span class="linenos">3636</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-3637"><a href="#JSONObject-3637"><span class="linenos">3637</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-3638"><a href="#JSONObject-3638"><span class="linenos">3638</span></a> <span class="s2">&quot;format_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObject-3639"><a href="#JSONObject-3639"><span class="linenos">3639</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-3640"><a href="#JSONObject-3640"><span class="linenos">3640</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONObject-3677"><a href="#JSONObject-3677"><span class="linenos">3677</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-3678"><a href="#JSONObject-3678"><span class="linenos">3678</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JSONObject-3679"><a href="#JSONObject-3679"><span class="linenos">3679</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-3680"><a href="#JSONObject-3680"><span class="linenos">3680</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-3681"><a href="#JSONObject-3681"><span class="linenos">3681</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-3682"><a href="#JSONObject-3682"><span class="linenos">3682</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-3683"><a href="#JSONObject-3683"><span class="linenos">3683</span></a> <span class="s2">&quot;format_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObject-3684"><a href="#JSONObject-3684"><span class="linenos">3684</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-3685"><a href="#JSONObject-3685"><span class="linenos">3685</span></a> <span class="p">}</span>
</span></pre></div>
@@ -36821,8 +37410,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONBContains"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBContains-3643"><a href="#JSONBContains-3643"><span class="linenos">3643</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-3644"><a href="#JSONBContains-3644"><span class="linenos">3644</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-3688"><a href="#JSONBContains-3688"><span class="linenos">3688</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-3689"><a href="#JSONBContains-3689"><span class="linenos">3689</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>
@@ -36885,8 +37474,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract-3647"><a href="#JSONExtract-3647"><span class="linenos">3647</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-3648"><a href="#JSONExtract-3648"><span class="linenos">3648</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract-3692"><a href="#JSONExtract-3692"><span class="linenos">3692</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-3693"><a href="#JSONExtract-3693"><span class="linenos">3693</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -36962,8 +37551,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONExtractScalar"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-3651"><a href="#JSONExtractScalar-3651"><span class="linenos">3651</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
-</span><span id="JSONExtractScalar-3652"><a href="#JSONExtractScalar-3652"><span class="linenos">3652</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-3696"><a href="#JSONExtractScalar-3696"><span class="linenos">3696</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
+</span><span id="JSONExtractScalar-3697"><a href="#JSONExtractScalar-3697"><span class="linenos">3697</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -37039,8 +37628,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONBExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtract-3655"><a href="#JSONBExtract-3655"><span class="linenos">3655</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
-</span><span id="JSONBExtract-3656"><a href="#JSONBExtract-3656"><span class="linenos">3656</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-3700"><a href="#JSONBExtract-3700"><span class="linenos">3700</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
+</span><span id="JSONBExtract-3701"><a href="#JSONBExtract-3701"><span class="linenos">3701</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>
@@ -37116,8 +37705,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONBExtractScalar"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtractScalar-3659"><a href="#JSONBExtractScalar-3659"><span class="linenos">3659</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
-</span><span id="JSONBExtractScalar-3660"><a href="#JSONBExtractScalar-3660"><span class="linenos">3660</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-3704"><a href="#JSONBExtractScalar-3704"><span class="linenos">3704</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
+</span><span id="JSONBExtractScalar-3705"><a href="#JSONBExtractScalar-3705"><span class="linenos">3705</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>
@@ -37193,9 +37782,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONFormat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONFormat-3663"><a href="#JSONFormat-3663"><span class="linenos">3663</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-3664"><a href="#JSONFormat-3664"><span class="linenos">3664</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="JSONFormat-3665"><a href="#JSONFormat-3665"><span class="linenos">3665</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-3708"><a href="#JSONFormat-3708"><span class="linenos">3708</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-3709"><a href="#JSONFormat-3709"><span class="linenos">3709</span></a> <span class="n">arg_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-3710"><a href="#JSONFormat-3710"><span class="linenos">3710</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>
@@ -37271,9 +37860,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Least"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Least-3668"><a href="#Least-3668"><span class="linenos">3668</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-3669"><a href="#Least-3669"><span class="linenos">3669</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Least-3670"><a href="#Least-3670"><span class="linenos">3670</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-3713"><a href="#Least-3713"><span class="linenos">3713</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-3714"><a href="#Least-3714"><span class="linenos">3714</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Least-3715"><a href="#Least-3715"><span class="linenos">3715</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -37349,8 +37938,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Length"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Length-3673"><a href="#Length-3673"><span class="linenos">3673</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-3674"><a href="#Length-3674"><span class="linenos">3674</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Length-3718"><a href="#Length-3718"><span class="linenos">3718</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-3719"><a href="#Length-3719"><span class="linenos">3719</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -37426,14 +38015,14 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Levenshtein"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Levenshtein-3677"><a href="#Levenshtein-3677"><span class="linenos">3677</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-3678"><a href="#Levenshtein-3678"><span class="linenos">3678</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Levenshtein-3679"><a href="#Levenshtein-3679"><span class="linenos">3679</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-3680"><a href="#Levenshtein-3680"><span class="linenos">3680</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-3681"><a href="#Levenshtein-3681"><span class="linenos">3681</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-3682"><a href="#Levenshtein-3682"><span class="linenos">3682</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-3683"><a href="#Levenshtein-3683"><span class="linenos">3683</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-3684"><a href="#Levenshtein-3684"><span class="linenos">3684</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Levenshtein-3722"><a href="#Levenshtein-3722"><span class="linenos">3722</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-3723"><a href="#Levenshtein-3723"><span class="linenos">3723</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Levenshtein-3724"><a href="#Levenshtein-3724"><span class="linenos">3724</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-3725"><a href="#Levenshtein-3725"><span class="linenos">3725</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-3726"><a href="#Levenshtein-3726"><span class="linenos">3726</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-3727"><a href="#Levenshtein-3727"><span class="linenos">3727</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-3728"><a href="#Levenshtein-3728"><span class="linenos">3728</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-3729"><a href="#Levenshtein-3729"><span class="linenos">3729</span></a> <span class="p">}</span>
</span></pre></div>
@@ -37509,8 +38098,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Ln"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Ln-3687"><a href="#Ln-3687"><span class="linenos">3687</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-3688"><a href="#Ln-3688"><span class="linenos">3688</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Ln-3732"><a href="#Ln-3732"><span class="linenos">3732</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-3733"><a href="#Ln-3733"><span class="linenos">3733</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -37586,8 +38175,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Log"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log-3691"><a href="#Log-3691"><span class="linenos">3691</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-3692"><a href="#Log-3692"><span class="linenos">3692</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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-3736"><a href="#Log-3736"><span class="linenos">3736</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-3737"><a href="#Log-3737"><span class="linenos">3737</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</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>
@@ -37663,8 +38252,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Log2"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log2-3695"><a href="#Log2-3695"><span class="linenos">3695</span></a><span class="k">class</span> <span class="nc">Log2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Log2-3696"><a href="#Log2-3696"><span class="linenos">3696</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Log2-3740"><a href="#Log2-3740"><span class="linenos">3740</span></a><span class="k">class</span> <span class="nc">Log2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Log2-3741"><a href="#Log2-3741"><span class="linenos">3741</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -37740,8 +38329,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Log10"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log10-3699"><a href="#Log10-3699"><span class="linenos">3699</span></a><span class="k">class</span> <span class="nc">Log10</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Log10-3700"><a href="#Log10-3700"><span class="linenos">3700</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Log10-3744"><a href="#Log10-3744"><span class="linenos">3744</span></a><span class="k">class</span> <span class="nc">Log10</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Log10-3745"><a href="#Log10-3745"><span class="linenos">3745</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -37817,8 +38406,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#LogicalOr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalOr-3703"><a href="#LogicalOr-3703"><span class="linenos">3703</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-3704"><a href="#LogicalOr-3704"><span class="linenos">3704</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-3748"><a href="#LogicalOr-3748"><span class="linenos">3748</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-3749"><a href="#LogicalOr-3749"><span class="linenos">3749</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>
@@ -37894,8 +38483,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#LogicalAnd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalAnd-3707"><a href="#LogicalAnd-3707"><span class="linenos">3707</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-3708"><a href="#LogicalAnd-3708"><span class="linenos">3708</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-3752"><a href="#LogicalAnd-3752"><span class="linenos">3752</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-3753"><a href="#LogicalAnd-3753"><span class="linenos">3753</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>
@@ -37971,8 +38560,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Lower"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lower-3711"><a href="#Lower-3711"><span class="linenos">3711</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-3712"><a href="#Lower-3712"><span class="linenos">3712</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-3756"><a href="#Lower-3756"><span class="linenos">3756</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-3757"><a href="#Lower-3757"><span class="linenos">3757</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOWER&quot;</span><span class="p">,</span> <span class="s2">&quot;LCASE&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -38048,8 +38637,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Map"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Map-3715"><a href="#Map-3715"><span class="linenos">3715</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-3716"><a href="#Map-3716"><span class="linenos">3716</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Map-3760"><a href="#Map-3760"><span class="linenos">3760</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-3761"><a href="#Map-3761"><span class="linenos">3761</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -38114,6 +38703,83 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
+ <section id="StarMap">
+ <input id="StarMap-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">StarMap</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="StarMap-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#StarMap"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StarMap-3764"><a href="#StarMap-3764"><span class="linenos">3764</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-3765"><a href="#StarMap-3765"><span class="linenos">3765</span></a> <span class="k">pass</span>
+</span></pre></div>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="StarMap.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="StarMap.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="StarMap.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="StarMap.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="StarMap.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="StarMap.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="StarMap.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="StarMap.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="StarMap.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="StarMap.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="StarMap.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="StarMap.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="StarMap.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="StarMap.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="StarMap.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="StarMap.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="StarMap.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="StarMap.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="StarMap.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="StarMap.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="StarMap.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="StarMap.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="StarMap.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="StarMap.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="StarMap.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="StarMap.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="StarMap.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="StarMap.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="StarMap.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="StarMap.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="StarMap.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="StarMap.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="StarMap.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="StarMap.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="StarMap.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="StarMap.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="StarMap.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="StarMap.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="StarMap.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="StarMap.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="StarMap.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ <div><dt><a href="#Condition">Condition</a></dt>
+ <dd id="StarMap.and_" class="function"><a href="#Condition.and_">and_</a></dd>
+ <dd id="StarMap.or_" class="function"><a href="#Condition.or_">or_</a></dd>
+ <dd id="StarMap.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="VarMap">
<input id="VarMap-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -38125,9 +38791,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#VarMap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap-3719"><a href="#VarMap-3719"><span class="linenos">3719</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-3720"><a href="#VarMap-3720"><span class="linenos">3720</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3721"><a href="#VarMap-3721"><span class="linenos">3721</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap-3768"><a href="#VarMap-3768"><span class="linenos">3768</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-3769"><a href="#VarMap-3769"><span class="linenos">3769</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3770"><a href="#VarMap-3770"><span class="linenos">3770</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -38203,8 +38869,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#MatchAgainst"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MatchAgainst-3725"><a href="#MatchAgainst-3725"><span class="linenos">3725</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-3726"><a href="#MatchAgainst-3726"><span class="linenos">3726</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3774"><a href="#MatchAgainst-3774"><span class="linenos">3774</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-3775"><a href="#MatchAgainst-3775"><span class="linenos">3775</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -38280,9 +38946,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Max"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Max-3729"><a href="#Max-3729"><span class="linenos">3729</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-3730"><a href="#Max-3730"><span class="linenos">3730</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3731"><a href="#Max-3731"><span class="linenos">3731</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-3778"><a href="#Max-3778"><span class="linenos">3778</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-3779"><a href="#Max-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;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-3780"><a href="#Max-3780"><span class="linenos">3780</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -38347,6 +39013,83 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
+ <section id="MD5">
+ <input id="MD5-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">MD5</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="MD5-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#MD5"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MD5-3783"><a href="#MD5-3783"><span class="linenos">3783</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-3784"><a href="#MD5-3784"><span class="linenos">3784</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>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="MD5.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="MD5.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="MD5.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="MD5.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="MD5.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="MD5.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="MD5.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="MD5.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="MD5.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="MD5.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="MD5.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="MD5.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="MD5.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="MD5.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="MD5.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="MD5.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="MD5.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="MD5.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="MD5.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="MD5.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="MD5.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="MD5.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="MD5.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="MD5.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="MD5.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="MD5.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="MD5.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="MD5.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="MD5.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="MD5.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="MD5.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="MD5.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="MD5.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="MD5.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="MD5.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="MD5.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="MD5.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="MD5.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="MD5.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="MD5.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="MD5.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ <div><dt><a href="#Condition">Condition</a></dt>
+ <dd id="MD5.and_" class="function"><a href="#Condition.and_">and_</a></dd>
+ <dd id="MD5.or_" class="function"><a href="#Condition.or_">or_</a></dd>
+ <dd id="MD5.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="Min">
<input id="Min-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -38358,9 +39101,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Min"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Min-3734"><a href="#Min-3734"><span class="linenos">3734</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-3735"><a href="#Min-3735"><span class="linenos">3735</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3736"><a href="#Min-3736"><span class="linenos">3736</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-3787"><a href="#Min-3787"><span class="linenos">3787</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-3788"><a href="#Min-3788"><span class="linenos">3788</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Min-3789"><a href="#Min-3789"><span class="linenos">3789</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -38436,8 +39179,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Month"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Month-3739"><a href="#Month-3739"><span class="linenos">3739</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-3740"><a href="#Month-3740"><span class="linenos">3740</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Month-3792"><a href="#Month-3792"><span class="linenos">3792</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-3793"><a href="#Month-3793"><span class="linenos">3793</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -38513,8 +39256,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Nvl2"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Nvl2-3743"><a href="#Nvl2-3743"><span class="linenos">3743</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-3744"><a href="#Nvl2-3744"><span class="linenos">3744</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3796"><a href="#Nvl2-3796"><span class="linenos">3796</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-3797"><a href="#Nvl2-3797"><span class="linenos">3797</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -38590,8 +39333,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Posexplode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Posexplode-3747"><a href="#Posexplode-3747"><span class="linenos">3747</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Posexplode-3748"><a href="#Posexplode-3748"><span class="linenos">3748</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Posexplode-3800"><a href="#Posexplode-3800"><span class="linenos">3800</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Posexplode-3801"><a href="#Posexplode-3801"><span class="linenos">3801</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -38667,8 +39410,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Pow"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Pow-3751"><a href="#Pow-3751"><span class="linenos">3751</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-3752"><a href="#Pow-3752"><span class="linenos">3752</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-3804"><a href="#Pow-3804"><span class="linenos">3804</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-3805"><a href="#Pow-3805"><span class="linenos">3805</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>
@@ -38744,8 +39487,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#PercentileCont"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileCont-3755"><a href="#PercentileCont-3755"><span class="linenos">3755</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-3756"><a href="#PercentileCont-3756"><span class="linenos">3756</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileCont-3808"><a href="#PercentileCont-3808"><span class="linenos">3808</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-3809"><a href="#PercentileCont-3809"><span class="linenos">3809</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -38821,8 +39564,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#PercentileDisc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileDisc-3759"><a href="#PercentileDisc-3759"><span class="linenos">3759</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-3760"><a href="#PercentileDisc-3760"><span class="linenos">3760</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileDisc-3812"><a href="#PercentileDisc-3812"><span class="linenos">3812</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-3813"><a href="#PercentileDisc-3813"><span class="linenos">3813</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -38898,8 +39641,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Quantile"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Quantile-3763"><a href="#Quantile-3763"><span class="linenos">3763</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-3764"><a href="#Quantile-3764"><span class="linenos">3764</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3816"><a href="#Quantile-3816"><span class="linenos">3816</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-3817"><a href="#Quantile-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;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -38975,9 +39718,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Quantiles"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Quantiles-3769"><a href="#Quantiles-3769"><span class="linenos">3769</span></a><span class="k">class</span> <span class="nc">Quantiles</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Quantiles-3770"><a href="#Quantiles-3770"><span class="linenos">3770</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="Quantiles-3771"><a href="#Quantiles-3771"><span class="linenos">3771</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="Quantiles-3822"><a href="#Quantiles-3822"><span class="linenos">3822</span></a><span class="k">class</span> <span class="nc">Quantiles</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Quantiles-3823"><a href="#Quantiles-3823"><span class="linenos">3823</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="Quantiles-3824"><a href="#Quantiles-3824"><span class="linenos">3824</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -39053,8 +39796,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#QuantileIf"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="QuantileIf-3774"><a href="#QuantileIf-3774"><span class="linenos">3774</span></a><span class="k">class</span> <span class="nc">QuantileIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="QuantileIf-3775"><a href="#QuantileIf-3775"><span class="linenos">3775</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="QuantileIf-3827"><a href="#QuantileIf-3827"><span class="linenos">3827</span></a><span class="k">class</span> <span class="nc">QuantileIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="QuantileIf-3828"><a href="#QuantileIf-3828"><span class="linenos">3828</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -39130,8 +39873,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ApproxQuantile"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxQuantile-3778"><a href="#ApproxQuantile-3778"><span class="linenos">3778</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-3779"><a href="#ApproxQuantile-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;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-3831"><a href="#ApproxQuantile-3831"><span class="linenos">3831</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-3832"><a href="#ApproxQuantile-3832"><span class="linenos">3832</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -39207,8 +39950,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#RangeN"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RangeN-3782"><a href="#RangeN-3782"><span class="linenos">3782</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-3783"><a href="#RangeN-3783"><span class="linenos">3783</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-3835"><a href="#RangeN-3835"><span class="linenos">3835</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-3836"><a href="#RangeN-3836"><span class="linenos">3836</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -39284,10 +40027,10 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ReadCSV"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ReadCSV-3786"><a href="#ReadCSV-3786"><span class="linenos">3786</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-3787"><a href="#ReadCSV-3787"><span class="linenos">3787</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-3788"><a href="#ReadCSV-3788"><span class="linenos">3788</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="ReadCSV-3789"><a href="#ReadCSV-3789"><span class="linenos">3789</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-3839"><a href="#ReadCSV-3839"><span class="linenos">3839</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-3840"><a href="#ReadCSV-3840"><span class="linenos">3840</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-3841"><a href="#ReadCSV-3841"><span class="linenos">3841</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="ReadCSV-3842"><a href="#ReadCSV-3842"><span class="linenos">3842</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -39363,8 +40106,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Reduce"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Reduce-3792"><a href="#Reduce-3792"><span class="linenos">3792</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-3793"><a href="#Reduce-3793"><span class="linenos">3793</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3845"><a href="#Reduce-3845"><span class="linenos">3845</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-3846"><a href="#Reduce-3846"><span class="linenos">3846</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -39440,14 +40183,14 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#RegexpExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpExtract-3796"><a href="#RegexpExtract-3796"><span class="linenos">3796</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-3797"><a href="#RegexpExtract-3797"><span class="linenos">3797</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="RegexpExtract-3798"><a href="#RegexpExtract-3798"><span class="linenos">3798</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-3799"><a href="#RegexpExtract-3799"><span class="linenos">3799</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-3800"><a href="#RegexpExtract-3800"><span class="linenos">3800</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-3801"><a href="#RegexpExtract-3801"><span class="linenos">3801</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-3802"><a href="#RegexpExtract-3802"><span class="linenos">3802</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-3803"><a href="#RegexpExtract-3803"><span class="linenos">3803</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpExtract-3849"><a href="#RegexpExtract-3849"><span class="linenos">3849</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-3850"><a href="#RegexpExtract-3850"><span class="linenos">3850</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="RegexpExtract-3851"><a href="#RegexpExtract-3851"><span class="linenos">3851</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-3852"><a href="#RegexpExtract-3852"><span class="linenos">3852</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-3853"><a href="#RegexpExtract-3853"><span class="linenos">3853</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-3854"><a href="#RegexpExtract-3854"><span class="linenos">3854</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-3855"><a href="#RegexpExtract-3855"><span class="linenos">3855</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-3856"><a href="#RegexpExtract-3856"><span class="linenos">3856</span></a> <span class="p">}</span>
</span></pre></div>
@@ -39523,8 +40266,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#RegexpLike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpLike-3806"><a href="#RegexpLike-3806"><span class="linenos">3806</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="RegexpLike-3807"><a href="#RegexpLike-3807"><span class="linenos">3807</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3859"><a href="#RegexpLike-3859"><span class="linenos">3859</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="RegexpLike-3860"><a href="#RegexpLike-3860"><span class="linenos">3860</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -39600,8 +40343,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#RegexpILike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpILike-3810"><a href="#RegexpILike-3810"><span class="linenos">3810</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="RegexpILike-3811"><a href="#RegexpILike-3811"><span class="linenos">3811</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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-3863"><a href="#RegexpILike-3863"><span class="linenos">3863</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="RegexpILike-3864"><a href="#RegexpILike-3864"><span class="linenos">3864</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -39677,8 +40420,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#RegexpSplit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpSplit-3816"><a href="#RegexpSplit-3816"><span class="linenos">3816</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-3817"><a href="#RegexpSplit-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">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-3869"><a href="#RegexpSplit-3869"><span class="linenos">3869</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-3870"><a href="#RegexpSplit-3870"><span class="linenos">3870</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -39754,8 +40497,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Repeat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Repeat-3820"><a href="#Repeat-3820"><span class="linenos">3820</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-3821"><a href="#Repeat-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;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-3873"><a href="#Repeat-3873"><span class="linenos">3873</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-3874"><a href="#Repeat-3874"><span class="linenos">3874</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -39831,8 +40574,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Round"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Round-3824"><a href="#Round-3824"><span class="linenos">3824</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-3825"><a href="#Round-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">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Round-3877"><a href="#Round-3877"><span class="linenos">3877</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-3878"><a href="#Round-3878"><span class="linenos">3878</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -39908,8 +40651,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#RowNumber"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RowNumber-3828"><a href="#RowNumber-3828"><span class="linenos">3828</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-3829"><a href="#RowNumber-3829"><span class="linenos">3829</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-3881"><a href="#RowNumber-3881"><span class="linenos">3881</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-3882"><a href="#RowNumber-3882"><span class="linenos">3882</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>
@@ -39985,8 +40728,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#SafeDivide"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SafeDivide-3832"><a href="#SafeDivide-3832"><span class="linenos">3832</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-3833"><a href="#SafeDivide-3833"><span class="linenos">3833</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-3885"><a href="#SafeDivide-3885"><span class="linenos">3885</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-3886"><a href="#SafeDivide-3886"><span class="linenos">3886</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -40062,8 +40805,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#SetAgg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SetAgg-3836"><a href="#SetAgg-3836"><span class="linenos">3836</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="SetAgg-3837"><a href="#SetAgg-3837"><span class="linenos">3837</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SetAgg-3889"><a href="#SetAgg-3889"><span class="linenos">3889</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="SetAgg-3890"><a href="#SetAgg-3890"><span class="linenos">3890</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -40128,6 +40871,161 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
+ <section id="SHA">
+ <input id="SHA-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">SHA</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="SHA-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#SHA"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SHA-3893"><a href="#SHA-3893"><span class="linenos">3893</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-3894"><a href="#SHA-3894"><span class="linenos">3894</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>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="SHA.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="SHA.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="SHA.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="SHA.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="SHA.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="SHA.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="SHA.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="SHA.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="SHA.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="SHA.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SHA.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="SHA.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="SHA.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="SHA.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="SHA.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="SHA.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="SHA.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="SHA.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="SHA.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="SHA.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="SHA.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="SHA.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="SHA.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="SHA.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="SHA.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="SHA.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="SHA.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="SHA.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="SHA.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SHA.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="SHA.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="SHA.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="SHA.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="SHA.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="SHA.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="SHA.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="SHA.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="SHA.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="SHA.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="SHA.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="SHA.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ <div><dt><a href="#Condition">Condition</a></dt>
+ <dd id="SHA.and_" class="function"><a href="#Condition.and_">and_</a></dd>
+ <dd id="SHA.or_" class="function"><a href="#Condition.or_">or_</a></dd>
+ <dd id="SHA.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="SHA2">
+ <input id="SHA2-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">SHA2</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="SHA2-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#SHA2"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SHA2-3897"><a href="#SHA2-3897"><span class="linenos">3897</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-3898"><a href="#SHA2-3898"><span class="linenos">3898</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-3899"><a href="#SHA2-3899"><span class="linenos">3899</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="SHA2.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="SHA2.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="SHA2.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="SHA2.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="SHA2.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="SHA2.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="SHA2.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="SHA2.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="SHA2.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="SHA2.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SHA2.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="SHA2.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="SHA2.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="SHA2.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="SHA2.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="SHA2.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="SHA2.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="SHA2.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="SHA2.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="SHA2.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="SHA2.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="SHA2.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="SHA2.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="SHA2.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="SHA2.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="SHA2.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="SHA2.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="SHA2.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="SHA2.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="SHA2.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="SHA2.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="SHA2.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="SHA2.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="SHA2.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="SHA2.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="SHA2.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="SHA2.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="SHA2.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="SHA2.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="SHA2.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="SHA2.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ <div><dt><a href="#Condition">Condition</a></dt>
+ <dd id="SHA2.and_" class="function"><a href="#Condition.and_">and_</a></dd>
+ <dd id="SHA2.or_" class="function"><a href="#Condition.or_">or_</a></dd>
+ <dd id="SHA2.not_" class="function"><a href="#Condition.not_">not_</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="SortArray">
<input id="SortArray-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -40139,8 +41037,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#SortArray"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SortArray-3840"><a href="#SortArray-3840"><span class="linenos">3840</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-3841"><a href="#SortArray-3841"><span class="linenos">3841</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3902"><a href="#SortArray-3902"><span class="linenos">3902</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-3903"><a href="#SortArray-3903"><span class="linenos">3903</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -40216,8 +41114,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Split"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Split-3844"><a href="#Split-3844"><span class="linenos">3844</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-3845"><a href="#Split-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">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-3906"><a href="#Split-3906"><span class="linenos">3906</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-3907"><a href="#Split-3907"><span class="linenos">3907</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -40293,8 +41191,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Substring"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Substring-3850"><a href="#Substring-3850"><span class="linenos">3850</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-3851"><a href="#Substring-3851"><span class="linenos">3851</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3912"><a href="#Substring-3912"><span class="linenos">3912</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-3913"><a href="#Substring-3913"><span class="linenos">3913</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -40370,13 +41268,13 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#StrPosition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrPosition-3854"><a href="#StrPosition-3854"><span class="linenos">3854</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-3855"><a href="#StrPosition-3855"><span class="linenos">3855</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="StrPosition-3856"><a href="#StrPosition-3856"><span class="linenos">3856</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-3857"><a href="#StrPosition-3857"><span class="linenos">3857</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-3858"><a href="#StrPosition-3858"><span class="linenos">3858</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-3859"><a href="#StrPosition-3859"><span class="linenos">3859</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-3860"><a href="#StrPosition-3860"><span class="linenos">3860</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrPosition-3916"><a href="#StrPosition-3916"><span class="linenos">3916</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-3917"><a href="#StrPosition-3917"><span class="linenos">3917</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="StrPosition-3918"><a href="#StrPosition-3918"><span class="linenos">3918</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-3919"><a href="#StrPosition-3919"><span class="linenos">3919</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-3920"><a href="#StrPosition-3920"><span class="linenos">3920</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-3921"><a href="#StrPosition-3921"><span class="linenos">3921</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-3922"><a href="#StrPosition-3922"><span class="linenos">3922</span></a> <span class="p">}</span>
</span></pre></div>
@@ -40452,8 +41350,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#StrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToDate-3863"><a href="#StrToDate-3863"><span class="linenos">3863</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-3864"><a href="#StrToDate-3864"><span class="linenos">3864</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3925"><a href="#StrToDate-3925"><span class="linenos">3925</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-3926"><a href="#StrToDate-3926"><span class="linenos">3926</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -40529,8 +41427,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#StrToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToTime-3867"><a href="#StrToTime-3867"><span class="linenos">3867</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-3868"><a href="#StrToTime-3868"><span class="linenos">3868</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrToTime-3929"><a href="#StrToTime-3929"><span class="linenos">3929</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-3930"><a href="#StrToTime-3930"><span class="linenos">3930</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -40606,8 +41504,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#StrToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToUnix-3873"><a href="#StrToUnix-3873"><span class="linenos">3873</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-3874"><a href="#StrToUnix-3874"><span class="linenos">3874</span></a> <span class="n">arg_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-3935"><a href="#StrToUnix-3935"><span class="linenos">3935</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-3936"><a href="#StrToUnix-3936"><span class="linenos">3936</span></a> <span class="n">arg_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>
@@ -40683,8 +41581,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#NumberToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NumberToStr-3877"><a href="#NumberToStr-3877"><span class="linenos">3877</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-3878"><a href="#NumberToStr-3878"><span class="linenos">3878</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NumberToStr-3939"><a href="#NumberToStr-3939"><span class="linenos">3939</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-3940"><a href="#NumberToStr-3940"><span class="linenos">3940</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -40760,9 +41658,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Struct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Struct-3881"><a href="#Struct-3881"><span class="linenos">3881</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-3882"><a href="#Struct-3882"><span class="linenos">3882</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="Struct-3883"><a href="#Struct-3883"><span class="linenos">3883</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-3943"><a href="#Struct-3943"><span class="linenos">3943</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-3944"><a href="#Struct-3944"><span class="linenos">3944</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="Struct-3945"><a href="#Struct-3945"><span class="linenos">3945</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -40838,8 +41736,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#StructExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StructExtract-3886"><a href="#StructExtract-3886"><span class="linenos">3886</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-3887"><a href="#StructExtract-3887"><span class="linenos">3887</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><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-3948"><a href="#StructExtract-3948"><span class="linenos">3948</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-3949"><a href="#StructExtract-3949"><span class="linenos">3949</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -40915,8 +41813,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Sum"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sum-3890"><a href="#Sum-3890"><span class="linenos">3890</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-3891"><a href="#Sum-3891"><span class="linenos">3891</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sum-3952"><a href="#Sum-3952"><span class="linenos">3952</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-3953"><a href="#Sum-3953"><span class="linenos">3953</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -40992,8 +41890,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Sqrt"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sqrt-3894"><a href="#Sqrt-3894"><span class="linenos">3894</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-3895"><a href="#Sqrt-3895"><span class="linenos">3895</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sqrt-3956"><a href="#Sqrt-3956"><span class="linenos">3956</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-3957"><a href="#Sqrt-3957"><span class="linenos">3957</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -41069,8 +41967,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Stddev"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Stddev-3898"><a href="#Stddev-3898"><span class="linenos">3898</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-3899"><a href="#Stddev-3899"><span class="linenos">3899</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Stddev-3960"><a href="#Stddev-3960"><span class="linenos">3960</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-3961"><a href="#Stddev-3961"><span class="linenos">3961</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -41146,8 +42044,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#StddevPop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StddevPop-3902"><a href="#StddevPop-3902"><span class="linenos">3902</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-3903"><a href="#StddevPop-3903"><span class="linenos">3903</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StddevPop-3964"><a href="#StddevPop-3964"><span class="linenos">3964</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-3965"><a href="#StddevPop-3965"><span class="linenos">3965</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -41223,8 +42121,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#StddevSamp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StddevSamp-3906"><a href="#StddevSamp-3906"><span class="linenos">3906</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-3907"><a href="#StddevSamp-3907"><span class="linenos">3907</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StddevSamp-3968"><a href="#StddevSamp-3968"><span class="linenos">3968</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-3969"><a href="#StddevSamp-3969"><span class="linenos">3969</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -41300,8 +42198,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToStr-3910"><a href="#TimeToStr-3910"><span class="linenos">3910</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-3911"><a href="#TimeToStr-3911"><span class="linenos">3911</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToStr-3972"><a href="#TimeToStr-3972"><span class="linenos">3972</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-3973"><a href="#TimeToStr-3973"><span class="linenos">3973</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -41377,8 +42275,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeToTimeStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToTimeStr-3914"><a href="#TimeToTimeStr-3914"><span class="linenos">3914</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-3915"><a href="#TimeToTimeStr-3915"><span class="linenos">3915</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToTimeStr-3976"><a href="#TimeToTimeStr-3976"><span class="linenos">3976</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-3977"><a href="#TimeToTimeStr-3977"><span class="linenos">3977</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -41454,8 +42352,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToUnix-3918"><a href="#TimeToUnix-3918"><span class="linenos">3918</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-3919"><a href="#TimeToUnix-3919"><span class="linenos">3919</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToUnix-3980"><a href="#TimeToUnix-3980"><span class="linenos">3980</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-3981"><a href="#TimeToUnix-3981"><span class="linenos">3981</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -41531,8 +42429,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeStrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToDate-3922"><a href="#TimeStrToDate-3922"><span class="linenos">3922</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-3923"><a href="#TimeStrToDate-3923"><span class="linenos">3923</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToDate-3984"><a href="#TimeStrToDate-3984"><span class="linenos">3984</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-3985"><a href="#TimeStrToDate-3985"><span class="linenos">3985</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -41608,8 +42506,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeStrToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToTime-3926"><a href="#TimeStrToTime-3926"><span class="linenos">3926</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-3927"><a href="#TimeStrToTime-3927"><span class="linenos">3927</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToTime-3988"><a href="#TimeStrToTime-3988"><span class="linenos">3988</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-3989"><a href="#TimeStrToTime-3989"><span class="linenos">3989</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -41685,8 +42583,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeStrToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToUnix-3930"><a href="#TimeStrToUnix-3930"><span class="linenos">3930</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-3931"><a href="#TimeStrToUnix-3931"><span class="linenos">3931</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToUnix-3992"><a href="#TimeStrToUnix-3992"><span class="linenos">3992</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-3993"><a href="#TimeStrToUnix-3993"><span class="linenos">3993</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -41762,13 +42660,13 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Trim"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Trim-3934"><a href="#Trim-3934"><span class="linenos">3934</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-3935"><a href="#Trim-3935"><span class="linenos">3935</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Trim-3936"><a href="#Trim-3936"><span class="linenos">3936</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-3937"><a href="#Trim-3937"><span class="linenos">3937</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-3938"><a href="#Trim-3938"><span class="linenos">3938</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-3939"><a href="#Trim-3939"><span class="linenos">3939</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-3940"><a href="#Trim-3940"><span class="linenos">3940</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Trim-3996"><a href="#Trim-3996"><span class="linenos">3996</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-3997"><a href="#Trim-3997"><span class="linenos">3997</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Trim-3998"><a href="#Trim-3998"><span class="linenos">3998</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-3999"><a href="#Trim-3999"><span class="linenos">3999</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-4000"><a href="#Trim-4000"><span class="linenos">4000</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-4001"><a href="#Trim-4001"><span class="linenos">4001</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-4002"><a href="#Trim-4002"><span class="linenos">4002</span></a> <span class="p">}</span>
</span></pre></div>
@@ -41844,8 +42742,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TsOrDsAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd-3943"><a href="#TsOrDsAdd-3943"><span class="linenos">3943</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-3944"><a href="#TsOrDsAdd-3944"><span class="linenos">3944</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd-4005"><a href="#TsOrDsAdd-4005"><span class="linenos">4005</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-4006"><a href="#TsOrDsAdd-4006"><span class="linenos">4006</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span 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>
@@ -41924,8 +42822,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TsOrDsToDateStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDateStr-3947"><a href="#TsOrDsToDateStr-3947"><span class="linenos">3947</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-3948"><a href="#TsOrDsToDateStr-3948"><span class="linenos">3948</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDateStr-4009"><a href="#TsOrDsToDateStr-4009"><span class="linenos">4009</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-4010"><a href="#TsOrDsToDateStr-4010"><span class="linenos">4010</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -42001,8 +42899,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TsOrDsToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDate-3951"><a href="#TsOrDsToDate-3951"><span class="linenos">3951</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-3952"><a href="#TsOrDsToDate-3952"><span class="linenos">3952</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDate-4013"><a href="#TsOrDsToDate-4013"><span class="linenos">4013</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-4014"><a href="#TsOrDsToDate-4014"><span class="linenos">4014</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -42078,8 +42976,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TsOrDiToDi"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDiToDi-3955"><a href="#TsOrDiToDi-3955"><span class="linenos">3955</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-3956"><a href="#TsOrDiToDi-3956"><span class="linenos">3956</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDiToDi-4017"><a href="#TsOrDiToDi-4017"><span class="linenos">4017</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-4018"><a href="#TsOrDiToDi-4018"><span class="linenos">4018</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -42155,8 +43053,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Unhex"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unhex-3959"><a href="#Unhex-3959"><span class="linenos">3959</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-3960"><a href="#Unhex-3960"><span class="linenos">3960</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unhex-4021"><a href="#Unhex-4021"><span class="linenos">4021</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-4022"><a href="#Unhex-4022"><span class="linenos">4022</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -42232,8 +43130,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#UnixToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToStr-3963"><a href="#UnixToStr-3963"><span class="linenos">3963</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-3964"><a href="#UnixToStr-3964"><span class="linenos">3964</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4025"><a href="#UnixToStr-4025"><span class="linenos">4025</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-4026"><a href="#UnixToStr-4026"><span class="linenos">4026</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -42309,12 +43207,12 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#UnixToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTime-3969"><a href="#UnixToTime-3969"><span class="linenos">3969</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-3970"><a href="#UnixToTime-3970"><span class="linenos">3970</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;hours&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;minutes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="UnixToTime-3971"><a href="#UnixToTime-3971"><span class="linenos">3971</span></a>
-</span><span id="UnixToTime-3972"><a href="#UnixToTime-3972"><span class="linenos">3972</span></a> <span class="n">SECONDS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;seconds&quot;</span><span class="p">)</span>
-</span><span id="UnixToTime-3973"><a href="#UnixToTime-3973"><span class="linenos">3973</span></a> <span class="n">MILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;millis&quot;</span><span class="p">)</span>
-</span><span id="UnixToTime-3974"><a href="#UnixToTime-3974"><span class="linenos">3974</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;micros&quot;</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTime-4031"><a href="#UnixToTime-4031"><span class="linenos">4031</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-4032"><a href="#UnixToTime-4032"><span class="linenos">4032</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;hours&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;minutes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="UnixToTime-4033"><a href="#UnixToTime-4033"><span class="linenos">4033</span></a>
+</span><span id="UnixToTime-4034"><a href="#UnixToTime-4034"><span class="linenos">4034</span></a> <span class="n">SECONDS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;seconds&quot;</span><span class="p">)</span>
+</span><span id="UnixToTime-4035"><a href="#UnixToTime-4035"><span class="linenos">4035</span></a> <span class="n">MILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;millis&quot;</span><span class="p">)</span>
+</span><span id="UnixToTime-4036"><a href="#UnixToTime-4036"><span class="linenos">4036</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;micros&quot;</span><span class="p">)</span>
</span></pre></div>
@@ -42390,8 +43288,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#UnixToTimeStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTimeStr-3977"><a href="#UnixToTimeStr-3977"><span class="linenos">3977</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-3978"><a href="#UnixToTimeStr-3978"><span class="linenos">3978</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTimeStr-4039"><a href="#UnixToTimeStr-4039"><span class="linenos">4039</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-4040"><a href="#UnixToTimeStr-4040"><span class="linenos">4040</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -42467,8 +43365,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Upper"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Upper-3981"><a href="#Upper-3981"><span class="linenos">3981</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-3982"><a href="#Upper-3982"><span class="linenos">3982</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-4043"><a href="#Upper-4043"><span class="linenos">4043</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-4044"><a href="#Upper-4044"><span class="linenos">4044</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>
@@ -42544,8 +43442,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Variance"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Variance-3985"><a href="#Variance-3985"><span class="linenos">3985</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-3986"><a href="#Variance-3986"><span class="linenos">3986</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-4047"><a href="#Variance-4047"><span class="linenos">4047</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-4048"><a href="#Variance-4048"><span class="linenos">4048</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>
@@ -42621,8 +43519,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#VariancePop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VariancePop-3989"><a href="#VariancePop-3989"><span class="linenos">3989</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-3990"><a href="#VariancePop-3990"><span class="linenos">3990</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-4051"><a href="#VariancePop-4051"><span class="linenos">4051</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-4052"><a href="#VariancePop-4052"><span class="linenos">4052</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>
@@ -42698,8 +43596,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Week"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Week-3993"><a href="#Week-3993"><span class="linenos">3993</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-3994"><a href="#Week-3994"><span class="linenos">3994</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4055"><a href="#Week-4055"><span class="linenos">4055</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-4056"><a href="#Week-4056"><span class="linenos">4056</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -42775,8 +43673,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#XMLTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="XMLTable-3997"><a href="#XMLTable-3997"><span class="linenos">3997</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-3998"><a href="#XMLTable-3998"><span class="linenos">3998</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4059"><a href="#XMLTable-4059"><span class="linenos">4059</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-4060"><a href="#XMLTable-4060"><span class="linenos">4060</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -42852,8 +43750,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Year"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Year-4001"><a href="#Year-4001"><span class="linenos">4001</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-4002"><a href="#Year-4002"><span class="linenos">4002</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Year-4063"><a href="#Year-4063"><span class="linenos">4063</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-4064"><a href="#Year-4064"><span class="linenos">4064</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -42929,8 +43827,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Use"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Use-4005"><a href="#Use-4005"><span class="linenos">4005</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-4006"><a href="#Use-4006"><span class="linenos">4006</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4067"><a href="#Use-4067"><span class="linenos">4067</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-4068"><a href="#Use-4068"><span class="linenos">4068</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -42993,8 +43891,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Merge"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Merge-4009"><a href="#Merge-4009"><span class="linenos">4009</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-4010"><a href="#Merge-4010"><span class="linenos">4010</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Merge-4071"><a href="#Merge-4071"><span class="linenos">4071</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-4072"><a href="#Merge-4072"><span class="linenos">4072</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -43057,8 +43955,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#When"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="When-4013"><a href="#When-4013"><span class="linenos">4013</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-4014"><a href="#When-4014"><span class="linenos">4014</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-4075"><a href="#When-4075"><span class="linenos">4075</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-4076"><a href="#When-4076"><span class="linenos">4076</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>
@@ -43134,48 +44032,48 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#maybe_parse"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_parse-4025"><a href="#maybe_parse-4025"><span class="linenos">4025</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="maybe_parse-4026"><a href="#maybe_parse-4026"><span class="linenos">4026</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-4027"><a href="#maybe_parse-4027"><span class="linenos">4027</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="maybe_parse-4028"><a href="#maybe_parse-4028"><span class="linenos">4028</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-4029"><a href="#maybe_parse-4029"><span class="linenos">4029</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-4030"><a href="#maybe_parse-4030"><span class="linenos">4030</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-4031"><a href="#maybe_parse-4031"><span class="linenos">4031</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-4032"><a href="#maybe_parse-4032"><span class="linenos">4032</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="maybe_parse-4033"><a href="#maybe_parse-4033"><span class="linenos">4033</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-4034"><a href="#maybe_parse-4034"><span class="linenos">4034</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-4035"><a href="#maybe_parse-4035"><span class="linenos">4035</span></a>
-</span><span id="maybe_parse-4036"><a href="#maybe_parse-4036"><span class="linenos">4036</span></a><span class="sd"> Example:</span>
-</span><span id="maybe_parse-4037"><a href="#maybe_parse-4037"><span class="linenos">4037</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
-</span><span id="maybe_parse-4038"><a href="#maybe_parse-4038"><span class="linenos">4038</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
-</span><span id="maybe_parse-4039"><a href="#maybe_parse-4039"><span class="linenos">4039</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
-</span><span id="maybe_parse-4040"><a href="#maybe_parse-4040"><span class="linenos">4040</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
-</span><span id="maybe_parse-4041"><a href="#maybe_parse-4041"><span class="linenos">4041</span></a>
-</span><span id="maybe_parse-4042"><a href="#maybe_parse-4042"><span class="linenos">4042</span></a><span class="sd"> Args:</span>
-</span><span id="maybe_parse-4043"><a href="#maybe_parse-4043"><span class="linenos">4043</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
-</span><span id="maybe_parse-4044"><a href="#maybe_parse-4044"><span class="linenos">4044</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
-</span><span id="maybe_parse-4045"><a href="#maybe_parse-4045"><span class="linenos">4045</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-4046"><a href="#maybe_parse-4046"><span class="linenos">4046</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="maybe_parse-4047"><a href="#maybe_parse-4047"><span class="linenos">4047</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
-</span><span id="maybe_parse-4048"><a href="#maybe_parse-4048"><span class="linenos">4048</span></a><span class="sd"> (automatically includes a space)</span>
-</span><span id="maybe_parse-4049"><a href="#maybe_parse-4049"><span class="linenos">4049</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="maybe_parse-4050"><a href="#maybe_parse-4050"><span class="linenos">4050</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-4051"><a href="#maybe_parse-4051"><span class="linenos">4051</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="maybe_parse-4052"><a href="#maybe_parse-4052"><span class="linenos">4052</span></a>
-</span><span id="maybe_parse-4053"><a href="#maybe_parse-4053"><span class="linenos">4053</span></a><span class="sd"> Returns:</span>
-</span><span id="maybe_parse-4054"><a href="#maybe_parse-4054"><span class="linenos">4054</span></a><span class="sd"> Expression: the parsed or given expression.</span>
-</span><span id="maybe_parse-4055"><a href="#maybe_parse-4055"><span class="linenos">4055</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="maybe_parse-4056"><a href="#maybe_parse-4056"><span class="linenos">4056</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-4057"><a href="#maybe_parse-4057"><span class="linenos">4057</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
-</span><span id="maybe_parse-4058"><a href="#maybe_parse-4058"><span class="linenos">4058</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-4059"><a href="#maybe_parse-4059"><span class="linenos">4059</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
-</span><span id="maybe_parse-4060"><a href="#maybe_parse-4060"><span class="linenos">4060</span></a>
-</span><span id="maybe_parse-4061"><a href="#maybe_parse-4061"><span class="linenos">4061</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
-</span><span id="maybe_parse-4062"><a href="#maybe_parse-4062"><span class="linenos">4062</span></a>
-</span><span id="maybe_parse-4063"><a href="#maybe_parse-4063"><span class="linenos">4063</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-4064"><a href="#maybe_parse-4064"><span class="linenos">4064</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
-</span><span id="maybe_parse-4065"><a href="#maybe_parse-4065"><span class="linenos">4065</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-4066"><a href="#maybe_parse-4066"><span class="linenos">4066</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-4113"><a href="#maybe_parse-4113"><span class="linenos">4113</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="maybe_parse-4114"><a href="#maybe_parse-4114"><span class="linenos">4114</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-4115"><a href="#maybe_parse-4115"><span class="linenos">4115</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="maybe_parse-4116"><a href="#maybe_parse-4116"><span class="linenos">4116</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-4117"><a href="#maybe_parse-4117"><span class="linenos">4117</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-4118"><a href="#maybe_parse-4118"><span class="linenos">4118</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-4119"><a href="#maybe_parse-4119"><span class="linenos">4119</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-4120"><a href="#maybe_parse-4120"><span class="linenos">4120</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="maybe_parse-4121"><a href="#maybe_parse-4121"><span class="linenos">4121</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-4122"><a href="#maybe_parse-4122"><span class="linenos">4122</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-4123"><a href="#maybe_parse-4123"><span class="linenos">4123</span></a>
+</span><span id="maybe_parse-4124"><a href="#maybe_parse-4124"><span class="linenos">4124</span></a><span class="sd"> Example:</span>
+</span><span id="maybe_parse-4125"><a href="#maybe_parse-4125"><span class="linenos">4125</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
+</span><span id="maybe_parse-4126"><a href="#maybe_parse-4126"><span class="linenos">4126</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
+</span><span id="maybe_parse-4127"><a href="#maybe_parse-4127"><span class="linenos">4127</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
+</span><span id="maybe_parse-4128"><a href="#maybe_parse-4128"><span class="linenos">4128</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
+</span><span id="maybe_parse-4129"><a href="#maybe_parse-4129"><span class="linenos">4129</span></a>
+</span><span id="maybe_parse-4130"><a href="#maybe_parse-4130"><span class="linenos">4130</span></a><span class="sd"> Args:</span>
+</span><span id="maybe_parse-4131"><a href="#maybe_parse-4131"><span class="linenos">4131</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
+</span><span id="maybe_parse-4132"><a href="#maybe_parse-4132"><span class="linenos">4132</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
+</span><span id="maybe_parse-4133"><a href="#maybe_parse-4133"><span class="linenos">4133</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-4134"><a href="#maybe_parse-4134"><span class="linenos">4134</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="maybe_parse-4135"><a href="#maybe_parse-4135"><span class="linenos">4135</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
+</span><span id="maybe_parse-4136"><a href="#maybe_parse-4136"><span class="linenos">4136</span></a><span class="sd"> (automatically includes a space)</span>
+</span><span id="maybe_parse-4137"><a href="#maybe_parse-4137"><span class="linenos">4137</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="maybe_parse-4138"><a href="#maybe_parse-4138"><span class="linenos">4138</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-4139"><a href="#maybe_parse-4139"><span class="linenos">4139</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="maybe_parse-4140"><a href="#maybe_parse-4140"><span class="linenos">4140</span></a>
+</span><span id="maybe_parse-4141"><a href="#maybe_parse-4141"><span class="linenos">4141</span></a><span class="sd"> Returns:</span>
+</span><span id="maybe_parse-4142"><a href="#maybe_parse-4142"><span class="linenos">4142</span></a><span class="sd"> Expression: the parsed or given expression.</span>
+</span><span id="maybe_parse-4143"><a href="#maybe_parse-4143"><span class="linenos">4143</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="maybe_parse-4144"><a href="#maybe_parse-4144"><span class="linenos">4144</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-4145"><a href="#maybe_parse-4145"><span class="linenos">4145</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
+</span><span id="maybe_parse-4146"><a href="#maybe_parse-4146"><span class="linenos">4146</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-4147"><a href="#maybe_parse-4147"><span class="linenos">4147</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
+</span><span id="maybe_parse-4148"><a href="#maybe_parse-4148"><span class="linenos">4148</span></a>
+</span><span id="maybe_parse-4149"><a href="#maybe_parse-4149"><span class="linenos">4149</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
+</span><span id="maybe_parse-4150"><a href="#maybe_parse-4150"><span class="linenos">4150</span></a>
+</span><span id="maybe_parse-4151"><a href="#maybe_parse-4151"><span class="linenos">4151</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-4152"><a href="#maybe_parse-4152"><span class="linenos">4152</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
+</span><span id="maybe_parse-4153"><a href="#maybe_parse-4153"><span class="linenos">4153</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-4154"><a href="#maybe_parse-4154"><span class="linenos">4154</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>
@@ -43227,29 +44125,29 @@ that an input expression is a SQL string).</li>
</div>
<a class="headerlink" href="#union"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="union-4212"><a href="#union-4212"><span class="linenos">4212</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="union-4213"><a href="#union-4213"><span class="linenos">4213</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="union-4214"><a href="#union-4214"><span class="linenos">4214</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
-</span><span id="union-4215"><a href="#union-4215"><span class="linenos">4215</span></a>
-</span><span id="union-4216"><a href="#union-4216"><span class="linenos">4216</span></a><span class="sd"> Example:</span>
-</span><span id="union-4217"><a href="#union-4217"><span class="linenos">4217</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-4218"><a href="#union-4218"><span class="linenos">4218</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
-</span><span id="union-4219"><a href="#union-4219"><span class="linenos">4219</span></a>
-</span><span id="union-4220"><a href="#union-4220"><span class="linenos">4220</span></a><span class="sd"> Args:</span>
-</span><span id="union-4221"><a href="#union-4221"><span class="linenos">4221</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="union-4222"><a href="#union-4222"><span class="linenos">4222</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="union-4223"><a href="#union-4223"><span class="linenos">4223</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="union-4224"><a href="#union-4224"><span class="linenos">4224</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="union-4225"><a href="#union-4225"><span class="linenos">4225</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="union-4226"><a href="#union-4226"><span class="linenos">4226</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="union-4227"><a href="#union-4227"><span class="linenos">4227</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="union-4228"><a href="#union-4228"><span class="linenos">4228</span></a><span class="sd"> Returns:</span>
-</span><span id="union-4229"><a href="#union-4229"><span class="linenos">4229</span></a><span class="sd"> Union: the syntax tree for the UNION expression.</span>
-</span><span id="union-4230"><a href="#union-4230"><span class="linenos">4230</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="union-4231"><a href="#union-4231"><span class="linenos">4231</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="union-4232"><a href="#union-4232"><span class="linenos">4232</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="union-4233"><a href="#union-4233"><span class="linenos">4233</span></a>
-</span><span id="union-4234"><a href="#union-4234"><span class="linenos">4234</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-4300"><a href="#union-4300"><span class="linenos">4300</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
+</span><span id="union-4301"><a href="#union-4301"><span class="linenos">4301</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="union-4302"><a href="#union-4302"><span class="linenos">4302</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</span><span id="union-4303"><a href="#union-4303"><span class="linenos">4303</span></a>
+</span><span id="union-4304"><a href="#union-4304"><span class="linenos">4304</span></a><span class="sd"> Example:</span>
+</span><span id="union-4305"><a href="#union-4305"><span class="linenos">4305</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-4306"><a href="#union-4306"><span class="linenos">4306</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="union-4307"><a href="#union-4307"><span class="linenos">4307</span></a>
+</span><span id="union-4308"><a href="#union-4308"><span class="linenos">4308</span></a><span class="sd"> Args:</span>
+</span><span id="union-4309"><a href="#union-4309"><span class="linenos">4309</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
+</span><span id="union-4310"><a href="#union-4310"><span class="linenos">4310</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="union-4311"><a href="#union-4311"><span class="linenos">4311</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
+</span><span id="union-4312"><a href="#union-4312"><span class="linenos">4312</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="union-4313"><a href="#union-4313"><span class="linenos">4313</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
+</span><span id="union-4314"><a href="#union-4314"><span class="linenos">4314</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="union-4315"><a href="#union-4315"><span class="linenos">4315</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="union-4316"><a href="#union-4316"><span class="linenos">4316</span></a><span class="sd"> Returns:</span>
+</span><span id="union-4317"><a href="#union-4317"><span class="linenos">4317</span></a><span class="sd"> Union: the syntax tree for the UNION expression.</span>
+</span><span id="union-4318"><a href="#union-4318"><span class="linenos">4318</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="union-4319"><a href="#union-4319"><span class="linenos">4319</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="union-4320"><a href="#union-4320"><span class="linenos">4320</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="union-4321"><a href="#union-4321"><span class="linenos">4321</span></a>
+</span><span id="union-4322"><a href="#union-4322"><span class="linenos">4322</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>
@@ -43297,29 +44195,29 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#intersect"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="intersect-4237"><a href="#intersect-4237"><span class="linenos">4237</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="intersect-4238"><a href="#intersect-4238"><span class="linenos">4238</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="intersect-4239"><a href="#intersect-4239"><span class="linenos">4239</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
-</span><span id="intersect-4240"><a href="#intersect-4240"><span class="linenos">4240</span></a>
-</span><span id="intersect-4241"><a href="#intersect-4241"><span class="linenos">4241</span></a><span class="sd"> Example:</span>
-</span><span id="intersect-4242"><a href="#intersect-4242"><span class="linenos">4242</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-4243"><a href="#intersect-4243"><span class="linenos">4243</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
-</span><span id="intersect-4244"><a href="#intersect-4244"><span class="linenos">4244</span></a>
-</span><span id="intersect-4245"><a href="#intersect-4245"><span class="linenos">4245</span></a><span class="sd"> Args:</span>
-</span><span id="intersect-4246"><a href="#intersect-4246"><span class="linenos">4246</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="intersect-4247"><a href="#intersect-4247"><span class="linenos">4247</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="intersect-4248"><a href="#intersect-4248"><span class="linenos">4248</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="intersect-4249"><a href="#intersect-4249"><span class="linenos">4249</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="intersect-4250"><a href="#intersect-4250"><span class="linenos">4250</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="intersect-4251"><a href="#intersect-4251"><span class="linenos">4251</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="intersect-4252"><a href="#intersect-4252"><span class="linenos">4252</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="intersect-4253"><a href="#intersect-4253"><span class="linenos">4253</span></a><span class="sd"> Returns:</span>
-</span><span id="intersect-4254"><a href="#intersect-4254"><span class="linenos">4254</span></a><span class="sd"> Intersect: the syntax tree for the INTERSECT expression.</span>
-</span><span id="intersect-4255"><a href="#intersect-4255"><span class="linenos">4255</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="intersect-4256"><a href="#intersect-4256"><span class="linenos">4256</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="intersect-4257"><a href="#intersect-4257"><span class="linenos">4257</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="intersect-4258"><a href="#intersect-4258"><span class="linenos">4258</span></a>
-</span><span id="intersect-4259"><a href="#intersect-4259"><span class="linenos">4259</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-4325"><a href="#intersect-4325"><span class="linenos">4325</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
+</span><span id="intersect-4326"><a href="#intersect-4326"><span class="linenos">4326</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="intersect-4327"><a href="#intersect-4327"><span class="linenos">4327</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
+</span><span id="intersect-4328"><a href="#intersect-4328"><span class="linenos">4328</span></a>
+</span><span id="intersect-4329"><a href="#intersect-4329"><span class="linenos">4329</span></a><span class="sd"> Example:</span>
+</span><span id="intersect-4330"><a href="#intersect-4330"><span class="linenos">4330</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-4331"><a href="#intersect-4331"><span class="linenos">4331</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="intersect-4332"><a href="#intersect-4332"><span class="linenos">4332</span></a>
+</span><span id="intersect-4333"><a href="#intersect-4333"><span class="linenos">4333</span></a><span class="sd"> Args:</span>
+</span><span id="intersect-4334"><a href="#intersect-4334"><span class="linenos">4334</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
+</span><span id="intersect-4335"><a href="#intersect-4335"><span class="linenos">4335</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="intersect-4336"><a href="#intersect-4336"><span class="linenos">4336</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
+</span><span id="intersect-4337"><a href="#intersect-4337"><span class="linenos">4337</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="intersect-4338"><a href="#intersect-4338"><span class="linenos">4338</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
+</span><span id="intersect-4339"><a href="#intersect-4339"><span class="linenos">4339</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="intersect-4340"><a href="#intersect-4340"><span class="linenos">4340</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="intersect-4341"><a href="#intersect-4341"><span class="linenos">4341</span></a><span class="sd"> Returns:</span>
+</span><span id="intersect-4342"><a href="#intersect-4342"><span class="linenos">4342</span></a><span class="sd"> Intersect: the syntax tree for the INTERSECT expression.</span>
+</span><span id="intersect-4343"><a href="#intersect-4343"><span class="linenos">4343</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="intersect-4344"><a href="#intersect-4344"><span class="linenos">4344</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="intersect-4345"><a href="#intersect-4345"><span class="linenos">4345</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="intersect-4346"><a href="#intersect-4346"><span class="linenos">4346</span></a>
+</span><span id="intersect-4347"><a href="#intersect-4347"><span class="linenos">4347</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>
@@ -43367,29 +44265,29 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#except_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="except_-4262"><a href="#except_-4262"><span class="linenos">4262</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="except_-4263"><a href="#except_-4263"><span class="linenos">4263</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="except_-4264"><a href="#except_-4264"><span class="linenos">4264</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
-</span><span id="except_-4265"><a href="#except_-4265"><span class="linenos">4265</span></a>
-</span><span id="except_-4266"><a href="#except_-4266"><span class="linenos">4266</span></a><span class="sd"> Example:</span>
-</span><span id="except_-4267"><a href="#except_-4267"><span class="linenos">4267</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_-4268"><a href="#except_-4268"><span class="linenos">4268</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="except_-4269"><a href="#except_-4269"><span class="linenos">4269</span></a>
-</span><span id="except_-4270"><a href="#except_-4270"><span class="linenos">4270</span></a><span class="sd"> Args:</span>
-</span><span id="except_-4271"><a href="#except_-4271"><span class="linenos">4271</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="except_-4272"><a href="#except_-4272"><span class="linenos">4272</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="except_-4273"><a href="#except_-4273"><span class="linenos">4273</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="except_-4274"><a href="#except_-4274"><span class="linenos">4274</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="except_-4275"><a href="#except_-4275"><span class="linenos">4275</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="except_-4276"><a href="#except_-4276"><span class="linenos">4276</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="except_-4277"><a href="#except_-4277"><span class="linenos">4277</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="except_-4278"><a href="#except_-4278"><span class="linenos">4278</span></a><span class="sd"> Returns:</span>
-</span><span id="except_-4279"><a href="#except_-4279"><span class="linenos">4279</span></a><span class="sd"> Except: the syntax tree for the EXCEPT statement.</span>
-</span><span id="except_-4280"><a href="#except_-4280"><span class="linenos">4280</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="except_-4281"><a href="#except_-4281"><span class="linenos">4281</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="except_-4282"><a href="#except_-4282"><span class="linenos">4282</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="except_-4283"><a href="#except_-4283"><span class="linenos">4283</span></a>
-</span><span id="except_-4284"><a href="#except_-4284"><span class="linenos">4284</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_-4350"><a href="#except_-4350"><span class="linenos">4350</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
+</span><span id="except_-4351"><a href="#except_-4351"><span class="linenos">4351</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="except_-4352"><a href="#except_-4352"><span class="linenos">4352</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
+</span><span id="except_-4353"><a href="#except_-4353"><span class="linenos">4353</span></a>
+</span><span id="except_-4354"><a href="#except_-4354"><span class="linenos">4354</span></a><span class="sd"> Example:</span>
+</span><span id="except_-4355"><a href="#except_-4355"><span class="linenos">4355</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_-4356"><a href="#except_-4356"><span class="linenos">4356</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="except_-4357"><a href="#except_-4357"><span class="linenos">4357</span></a>
+</span><span id="except_-4358"><a href="#except_-4358"><span class="linenos">4358</span></a><span class="sd"> Args:</span>
+</span><span id="except_-4359"><a href="#except_-4359"><span class="linenos">4359</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
+</span><span id="except_-4360"><a href="#except_-4360"><span class="linenos">4360</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="except_-4361"><a href="#except_-4361"><span class="linenos">4361</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
+</span><span id="except_-4362"><a href="#except_-4362"><span class="linenos">4362</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="except_-4363"><a href="#except_-4363"><span class="linenos">4363</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
+</span><span id="except_-4364"><a href="#except_-4364"><span class="linenos">4364</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="except_-4365"><a href="#except_-4365"><span class="linenos">4365</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="except_-4366"><a href="#except_-4366"><span class="linenos">4366</span></a><span class="sd"> Returns:</span>
+</span><span id="except_-4367"><a href="#except_-4367"><span class="linenos">4367</span></a><span class="sd"> Except: the syntax tree for the EXCEPT statement.</span>
+</span><span id="except_-4368"><a href="#except_-4368"><span class="linenos">4368</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="except_-4369"><a href="#except_-4369"><span class="linenos">4369</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="except_-4370"><a href="#except_-4370"><span class="linenos">4370</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="except_-4371"><a href="#except_-4371"><span class="linenos">4371</span></a>
+</span><span id="except_-4372"><a href="#except_-4372"><span class="linenos">4372</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>
@@ -43437,26 +44335,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-4287"><a href="#select-4287"><span class="linenos">4287</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-4288"><a href="#select-4288"><span class="linenos">4288</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="select-4289"><a href="#select-4289"><span class="linenos">4289</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
-</span><span id="select-4290"><a href="#select-4290"><span class="linenos">4290</span></a>
-</span><span id="select-4291"><a href="#select-4291"><span class="linenos">4291</span></a><span class="sd"> Example:</span>
-</span><span id="select-4292"><a href="#select-4292"><span class="linenos">4292</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-4293"><a href="#select-4293"><span class="linenos">4293</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="select-4294"><a href="#select-4294"><span class="linenos">4294</span></a>
-</span><span id="select-4295"><a href="#select-4295"><span class="linenos">4295</span></a><span class="sd"> Args:</span>
-</span><span id="select-4296"><a href="#select-4296"><span class="linenos">4296</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
-</span><span id="select-4297"><a href="#select-4297"><span class="linenos">4297</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="select-4298"><a href="#select-4298"><span class="linenos">4298</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="select-4299"><a href="#select-4299"><span class="linenos">4299</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="select-4300"><a href="#select-4300"><span class="linenos">4300</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="select-4301"><a href="#select-4301"><span class="linenos">4301</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="select-4302"><a href="#select-4302"><span class="linenos">4302</span></a>
-</span><span id="select-4303"><a href="#select-4303"><span class="linenos">4303</span></a><span class="sd"> Returns:</span>
-</span><span id="select-4304"><a href="#select-4304"><span class="linenos">4304</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="select-4305"><a href="#select-4305"><span class="linenos">4305</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="select-4306"><a href="#select-4306"><span class="linenos">4306</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-4375"><a href="#select-4375"><span class="linenos">4375</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-4376"><a href="#select-4376"><span class="linenos">4376</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="select-4377"><a href="#select-4377"><span class="linenos">4377</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
+</span><span id="select-4378"><a href="#select-4378"><span class="linenos">4378</span></a>
+</span><span id="select-4379"><a href="#select-4379"><span class="linenos">4379</span></a><span class="sd"> Example:</span>
+</span><span id="select-4380"><a href="#select-4380"><span class="linenos">4380</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-4381"><a href="#select-4381"><span class="linenos">4381</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="select-4382"><a href="#select-4382"><span class="linenos">4382</span></a>
+</span><span id="select-4383"><a href="#select-4383"><span class="linenos">4383</span></a><span class="sd"> Args:</span>
+</span><span id="select-4384"><a href="#select-4384"><span class="linenos">4384</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
+</span><span id="select-4385"><a href="#select-4385"><span class="linenos">4385</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="select-4386"><a href="#select-4386"><span class="linenos">4386</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="select-4387"><a href="#select-4387"><span class="linenos">4387</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="select-4388"><a href="#select-4388"><span class="linenos">4388</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="select-4389"><a href="#select-4389"><span class="linenos">4389</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="select-4390"><a href="#select-4390"><span class="linenos">4390</span></a>
+</span><span id="select-4391"><a href="#select-4391"><span class="linenos">4391</span></a><span class="sd"> Returns:</span>
+</span><span id="select-4392"><a href="#select-4392"><span class="linenos">4392</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="select-4393"><a href="#select-4393"><span class="linenos">4393</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="select-4394"><a href="#select-4394"><span class="linenos">4394</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>
@@ -43503,26 +44401,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_-4309"><a href="#from_-4309"><span class="linenos">4309</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="from_-4310"><a href="#from_-4310"><span class="linenos">4310</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="from_-4311"><a href="#from_-4311"><span class="linenos">4311</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
-</span><span id="from_-4312"><a href="#from_-4312"><span class="linenos">4312</span></a>
-</span><span id="from_-4313"><a href="#from_-4313"><span class="linenos">4313</span></a><span class="sd"> Example:</span>
-</span><span id="from_-4314"><a href="#from_-4314"><span class="linenos">4314</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_-4315"><a href="#from_-4315"><span class="linenos">4315</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="from_-4316"><a href="#from_-4316"><span class="linenos">4316</span></a>
-</span><span id="from_-4317"><a href="#from_-4317"><span class="linenos">4317</span></a><span class="sd"> Args:</span>
-</span><span id="from_-4318"><a href="#from_-4318"><span class="linenos">4318</span></a><span class="sd"> *expressions (str | Expression): the SQL code string to parse as the FROM expressions of a</span>
-</span><span id="from_-4319"><a href="#from_-4319"><span class="linenos">4319</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="from_-4320"><a href="#from_-4320"><span class="linenos">4320</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
-</span><span id="from_-4321"><a href="#from_-4321"><span class="linenos">4321</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="from_-4322"><a href="#from_-4322"><span class="linenos">4322</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="from_-4323"><a href="#from_-4323"><span class="linenos">4323</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="from_-4324"><a href="#from_-4324"><span class="linenos">4324</span></a>
-</span><span id="from_-4325"><a href="#from_-4325"><span class="linenos">4325</span></a><span class="sd"> Returns:</span>
-</span><span id="from_-4326"><a href="#from_-4326"><span class="linenos">4326</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="from_-4327"><a href="#from_-4327"><span class="linenos">4327</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="from_-4328"><a href="#from_-4328"><span class="linenos">4328</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="from_-4397"><a href="#from_-4397"><span class="linenos">4397</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="from_-4398"><a href="#from_-4398"><span class="linenos">4398</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="from_-4399"><a href="#from_-4399"><span class="linenos">4399</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
+</span><span id="from_-4400"><a href="#from_-4400"><span class="linenos">4400</span></a>
+</span><span id="from_-4401"><a href="#from_-4401"><span class="linenos">4401</span></a><span class="sd"> Example:</span>
+</span><span id="from_-4402"><a href="#from_-4402"><span class="linenos">4402</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_-4403"><a href="#from_-4403"><span class="linenos">4403</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="from_-4404"><a href="#from_-4404"><span class="linenos">4404</span></a>
+</span><span id="from_-4405"><a href="#from_-4405"><span class="linenos">4405</span></a><span class="sd"> Args:</span>
+</span><span id="from_-4406"><a href="#from_-4406"><span class="linenos">4406</span></a><span class="sd"> *expressions (str | Expression): the SQL code string to parse as the FROM expressions of a</span>
+</span><span id="from_-4407"><a href="#from_-4407"><span class="linenos">4407</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="from_-4408"><a href="#from_-4408"><span class="linenos">4408</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
+</span><span id="from_-4409"><a href="#from_-4409"><span class="linenos">4409</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="from_-4410"><a href="#from_-4410"><span class="linenos">4410</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="from_-4411"><a href="#from_-4411"><span class="linenos">4411</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="from_-4412"><a href="#from_-4412"><span class="linenos">4412</span></a>
+</span><span id="from_-4413"><a href="#from_-4413"><span class="linenos">4413</span></a><span class="sd"> Returns:</span>
+</span><span id="from_-4414"><a href="#from_-4414"><span class="linenos">4414</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="from_-4415"><a href="#from_-4415"><span class="linenos">4415</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="from_-4416"><a href="#from_-4416"><span class="linenos">4416</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -43569,53 +44467,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-4331"><a href="#update-4331"><span class="linenos">4331</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
-</span><span id="update-4332"><a href="#update-4332"><span class="linenos">4332</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-4333"><a href="#update-4333"><span class="linenos">4333</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
-</span><span id="update-4334"><a href="#update-4334"><span class="linenos">4334</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-4335"><a href="#update-4335"><span class="linenos">4335</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-4336"><a href="#update-4336"><span class="linenos">4336</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-4337"><a href="#update-4337"><span class="linenos">4337</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="update-4338"><a href="#update-4338"><span class="linenos">4338</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
-</span><span id="update-4339"><a href="#update-4339"><span class="linenos">4339</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="update-4340"><a href="#update-4340"><span class="linenos">4340</span></a><span class="sd"> Creates an update statement.</span>
-</span><span id="update-4341"><a href="#update-4341"><span class="linenos">4341</span></a>
-</span><span id="update-4342"><a href="#update-4342"><span class="linenos">4342</span></a><span class="sd"> Example:</span>
-</span><span id="update-4343"><a href="#update-4343"><span class="linenos">4343</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-4344"><a href="#update-4344"><span class="linenos">4344</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-4345"><a href="#update-4345"><span class="linenos">4345</span></a>
-</span><span id="update-4346"><a href="#update-4346"><span class="linenos">4346</span></a><span class="sd"> Args:</span>
-</span><span id="update-4347"><a href="#update-4347"><span class="linenos">4347</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
-</span><span id="update-4348"><a href="#update-4348"><span class="linenos">4348</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
-</span><span id="update-4349"><a href="#update-4349"><span class="linenos">4349</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="update-4350"><a href="#update-4350"><span class="linenos">4350</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
-</span><span id="update-4351"><a href="#update-4351"><span class="linenos">4351</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="update-4352"><a href="#update-4352"><span class="linenos">4352</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="update-4353"><a href="#update-4353"><span class="linenos">4353</span></a>
-</span><span id="update-4354"><a href="#update-4354"><span class="linenos">4354</span></a><span class="sd"> Returns:</span>
-</span><span id="update-4355"><a href="#update-4355"><span class="linenos">4355</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
-</span><span id="update-4356"><a href="#update-4356"><span class="linenos">4356</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="update-4357"><a href="#update-4357"><span class="linenos">4357</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-4358"><a href="#update-4358"><span class="linenos">4358</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-4359"><a href="#update-4359"><span class="linenos">4359</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="update-4360"><a href="#update-4360"><span class="linenos">4360</span></a> <span class="p">[</span>
-</span><span id="update-4361"><a href="#update-4361"><span class="linenos">4361</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-4362"><a href="#update-4362"><span class="linenos">4362</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-4363"><a href="#update-4363"><span class="linenos">4363</span></a> <span class="p">],</span>
-</span><span id="update-4364"><a href="#update-4364"><span class="linenos">4364</span></a> <span class="p">)</span>
-</span><span id="update-4365"><a href="#update-4365"><span class="linenos">4365</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
-</span><span id="update-4366"><a href="#update-4366"><span class="linenos">4366</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-4367"><a href="#update-4367"><span class="linenos">4367</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="update-4368"><a href="#update-4368"><span class="linenos">4368</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-4369"><a href="#update-4369"><span class="linenos">4369</span></a> <span class="p">)</span>
-</span><span id="update-4370"><a href="#update-4370"><span class="linenos">4370</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-4371"><a href="#update-4371"><span class="linenos">4371</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-4372"><a href="#update-4372"><span class="linenos">4372</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="update-4373"><a href="#update-4373"><span class="linenos">4373</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-4374"><a href="#update-4374"><span class="linenos">4374</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="update-4375"><a href="#update-4375"><span class="linenos">4375</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-4376"><a href="#update-4376"><span class="linenos">4376</span></a> <span class="p">)</span>
-</span><span id="update-4377"><a href="#update-4377"><span class="linenos">4377</span></a> <span class="k">return</span> <span class="n">update_expr</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="update-4419"><a href="#update-4419"><span class="linenos">4419</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
+</span><span id="update-4420"><a href="#update-4420"><span class="linenos">4420</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-4421"><a href="#update-4421"><span class="linenos">4421</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
+</span><span id="update-4422"><a href="#update-4422"><span class="linenos">4422</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-4423"><a href="#update-4423"><span class="linenos">4423</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-4424"><a href="#update-4424"><span class="linenos">4424</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-4425"><a href="#update-4425"><span class="linenos">4425</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="update-4426"><a href="#update-4426"><span class="linenos">4426</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
+</span><span id="update-4427"><a href="#update-4427"><span class="linenos">4427</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="update-4428"><a href="#update-4428"><span class="linenos">4428</span></a><span class="sd"> Creates an update statement.</span>
+</span><span id="update-4429"><a href="#update-4429"><span class="linenos">4429</span></a>
+</span><span id="update-4430"><a href="#update-4430"><span class="linenos">4430</span></a><span class="sd"> Example:</span>
+</span><span id="update-4431"><a href="#update-4431"><span class="linenos">4431</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-4432"><a href="#update-4432"><span class="linenos">4432</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-4433"><a href="#update-4433"><span class="linenos">4433</span></a>
+</span><span id="update-4434"><a href="#update-4434"><span class="linenos">4434</span></a><span class="sd"> Args:</span>
+</span><span id="update-4435"><a href="#update-4435"><span class="linenos">4435</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
+</span><span id="update-4436"><a href="#update-4436"><span class="linenos">4436</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
+</span><span id="update-4437"><a href="#update-4437"><span class="linenos">4437</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="update-4438"><a href="#update-4438"><span class="linenos">4438</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
+</span><span id="update-4439"><a href="#update-4439"><span class="linenos">4439</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="update-4440"><a href="#update-4440"><span class="linenos">4440</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="update-4441"><a href="#update-4441"><span class="linenos">4441</span></a>
+</span><span id="update-4442"><a href="#update-4442"><span class="linenos">4442</span></a><span class="sd"> Returns:</span>
+</span><span id="update-4443"><a href="#update-4443"><span class="linenos">4443</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
+</span><span id="update-4444"><a href="#update-4444"><span class="linenos">4444</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="update-4445"><a href="#update-4445"><span class="linenos">4445</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-4446"><a href="#update-4446"><span class="linenos">4446</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-4447"><a href="#update-4447"><span class="linenos">4447</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="update-4448"><a href="#update-4448"><span class="linenos">4448</span></a> <span class="p">[</span>
+</span><span id="update-4449"><a href="#update-4449"><span class="linenos">4449</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-4450"><a href="#update-4450"><span class="linenos">4450</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-4451"><a href="#update-4451"><span class="linenos">4451</span></a> <span class="p">],</span>
+</span><span id="update-4452"><a href="#update-4452"><span class="linenos">4452</span></a> <span class="p">)</span>
+</span><span id="update-4453"><a href="#update-4453"><span class="linenos">4453</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
+</span><span id="update-4454"><a href="#update-4454"><span class="linenos">4454</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-4455"><a href="#update-4455"><span class="linenos">4455</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="update-4456"><a href="#update-4456"><span class="linenos">4456</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-4457"><a href="#update-4457"><span class="linenos">4457</span></a> <span class="p">)</span>
+</span><span id="update-4458"><a href="#update-4458"><span class="linenos">4458</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-4459"><a href="#update-4459"><span class="linenos">4459</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-4460"><a href="#update-4460"><span class="linenos">4460</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="update-4461"><a href="#update-4461"><span class="linenos">4461</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-4462"><a href="#update-4462"><span class="linenos">4462</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="update-4463"><a href="#update-4463"><span class="linenos">4463</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-4464"><a href="#update-4464"><span class="linenos">4464</span></a> <span class="p">)</span>
+</span><span id="update-4465"><a href="#update-4465"><span class="linenos">4465</span></a> <span class="k">return</span> <span class="n">update_expr</span>
</span></pre></div>
@@ -43662,35 +44560,35 @@ auto converted to sql objects eg None -> NULL</li>
</div>
<a class="headerlink" href="#delete"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="delete-4380"><a href="#delete-4380"><span class="linenos">4380</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="delete-4381"><a href="#delete-4381"><span class="linenos">4381</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="delete-4382"><a href="#delete-4382"><span class="linenos">4382</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-4383"><a href="#delete-4383"><span class="linenos">4383</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-4384"><a href="#delete-4384"><span class="linenos">4384</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-4385"><a href="#delete-4385"><span class="linenos">4385</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="delete-4386"><a href="#delete-4386"><span class="linenos">4386</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="delete-4387"><a href="#delete-4387"><span class="linenos">4387</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="delete-4388"><a href="#delete-4388"><span class="linenos">4388</span></a><span class="sd"> Builds a delete statement.</span>
-</span><span id="delete-4389"><a href="#delete-4389"><span class="linenos">4389</span></a>
-</span><span id="delete-4390"><a href="#delete-4390"><span class="linenos">4390</span></a><span class="sd"> Example:</span>
-</span><span id="delete-4391"><a href="#delete-4391"><span class="linenos">4391</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-4392"><a href="#delete-4392"><span class="linenos">4392</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
-</span><span id="delete-4393"><a href="#delete-4393"><span class="linenos">4393</span></a>
-</span><span id="delete-4394"><a href="#delete-4394"><span class="linenos">4394</span></a><span class="sd"> Args:</span>
-</span><span id="delete-4395"><a href="#delete-4395"><span class="linenos">4395</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="delete-4396"><a href="#delete-4396"><span class="linenos">4396</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="delete-4397"><a href="#delete-4397"><span class="linenos">4397</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="delete-4398"><a href="#delete-4398"><span class="linenos">4398</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="delete-4399"><a href="#delete-4399"><span class="linenos">4399</span></a>
-</span><span id="delete-4400"><a href="#delete-4400"><span class="linenos">4400</span></a><span class="sd"> Returns:</span>
-</span><span id="delete-4401"><a href="#delete-4401"><span class="linenos">4401</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
-</span><span id="delete-4402"><a href="#delete-4402"><span class="linenos">4402</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="delete-4403"><a href="#delete-4403"><span class="linenos">4403</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-4404"><a href="#delete-4404"><span class="linenos">4404</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="delete-4405"><a href="#delete-4405"><span class="linenos">4405</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-4406"><a href="#delete-4406"><span class="linenos">4406</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="delete-4407"><a href="#delete-4407"><span class="linenos">4407</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="delete-4408"><a href="#delete-4408"><span class="linenos">4408</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="delete-4468"><a href="#delete-4468"><span class="linenos">4468</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="delete-4469"><a href="#delete-4469"><span class="linenos">4469</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="delete-4470"><a href="#delete-4470"><span class="linenos">4470</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-4471"><a href="#delete-4471"><span class="linenos">4471</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-4472"><a href="#delete-4472"><span class="linenos">4472</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-4473"><a href="#delete-4473"><span class="linenos">4473</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="delete-4474"><a href="#delete-4474"><span class="linenos">4474</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="delete-4475"><a href="#delete-4475"><span class="linenos">4475</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="delete-4476"><a href="#delete-4476"><span class="linenos">4476</span></a><span class="sd"> Builds a delete statement.</span>
+</span><span id="delete-4477"><a href="#delete-4477"><span class="linenos">4477</span></a>
+</span><span id="delete-4478"><a href="#delete-4478"><span class="linenos">4478</span></a><span class="sd"> Example:</span>
+</span><span id="delete-4479"><a href="#delete-4479"><span class="linenos">4479</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-4480"><a href="#delete-4480"><span class="linenos">4480</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
+</span><span id="delete-4481"><a href="#delete-4481"><span class="linenos">4481</span></a>
+</span><span id="delete-4482"><a href="#delete-4482"><span class="linenos">4482</span></a><span class="sd"> Args:</span>
+</span><span id="delete-4483"><a href="#delete-4483"><span class="linenos">4483</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="delete-4484"><a href="#delete-4484"><span class="linenos">4484</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="delete-4485"><a href="#delete-4485"><span class="linenos">4485</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="delete-4486"><a href="#delete-4486"><span class="linenos">4486</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="delete-4487"><a href="#delete-4487"><span class="linenos">4487</span></a>
+</span><span id="delete-4488"><a href="#delete-4488"><span class="linenos">4488</span></a><span class="sd"> Returns:</span>
+</span><span id="delete-4489"><a href="#delete-4489"><span class="linenos">4489</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
+</span><span id="delete-4490"><a href="#delete-4490"><span class="linenos">4490</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="delete-4491"><a href="#delete-4491"><span class="linenos">4491</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-4492"><a href="#delete-4492"><span class="linenos">4492</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="delete-4493"><a href="#delete-4493"><span class="linenos">4493</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-4494"><a href="#delete-4494"><span class="linenos">4494</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="delete-4495"><a href="#delete-4495"><span class="linenos">4495</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="delete-4496"><a href="#delete-4496"><span class="linenos">4496</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
</span></pre></div>
@@ -43735,37 +44633,37 @@ auto converted to sql objects eg None -> NULL</li>
</div>
<a class="headerlink" href="#condition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="condition-4411"><a href="#condition-4411"><span class="linenos">4411</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="condition-4412"><a href="#condition-4412"><span class="linenos">4412</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="condition-4413"><a href="#condition-4413"><span class="linenos">4413</span></a><span class="sd"> Initialize a logical condition expression.</span>
-</span><span id="condition-4414"><a href="#condition-4414"><span class="linenos">4414</span></a>
-</span><span id="condition-4415"><a href="#condition-4415"><span class="linenos">4415</span></a><span class="sd"> Example:</span>
-</span><span id="condition-4416"><a href="#condition-4416"><span class="linenos">4416</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
-</span><span id="condition-4417"><a href="#condition-4417"><span class="linenos">4417</span></a><span class="sd"> &#39;x = 1&#39;</span>
-</span><span id="condition-4418"><a href="#condition-4418"><span class="linenos">4418</span></a>
-</span><span id="condition-4419"><a href="#condition-4419"><span class="linenos">4419</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
-</span><span id="condition-4420"><a href="#condition-4420"><span class="linenos">4420</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
-</span><span id="condition-4421"><a href="#condition-4421"><span class="linenos">4421</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
-</span><span id="condition-4422"><a href="#condition-4422"><span class="linenos">4422</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
-</span><span id="condition-4423"><a href="#condition-4423"><span class="linenos">4423</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
-</span><span id="condition-4424"><a href="#condition-4424"><span class="linenos">4424</span></a>
-</span><span id="condition-4425"><a href="#condition-4425"><span class="linenos">4425</span></a><span class="sd"> Args:</span>
-</span><span id="condition-4426"><a href="#condition-4426"><span class="linenos">4426</span></a><span class="sd"> *expression (str | Expression): the SQL code string to parse.</span>
-</span><span id="condition-4427"><a href="#condition-4427"><span class="linenos">4427</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="condition-4428"><a href="#condition-4428"><span class="linenos">4428</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
-</span><span id="condition-4429"><a href="#condition-4429"><span class="linenos">4429</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="condition-4430"><a href="#condition-4430"><span class="linenos">4430</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="condition-4431"><a href="#condition-4431"><span class="linenos">4431</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="condition-4432"><a href="#condition-4432"><span class="linenos">4432</span></a>
-</span><span id="condition-4433"><a href="#condition-4433"><span class="linenos">4433</span></a><span class="sd"> Returns:</span>
-</span><span id="condition-4434"><a href="#condition-4434"><span class="linenos">4434</span></a><span class="sd"> Condition: the expression</span>
-</span><span id="condition-4435"><a href="#condition-4435"><span class="linenos">4435</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="condition-4436"><a href="#condition-4436"><span class="linenos">4436</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span> <span class="c1"># type: ignore</span>
-</span><span id="condition-4437"><a href="#condition-4437"><span class="linenos">4437</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="condition-4438"><a href="#condition-4438"><span class="linenos">4438</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
-</span><span id="condition-4439"><a href="#condition-4439"><span class="linenos">4439</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="condition-4440"><a href="#condition-4440"><span class="linenos">4440</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="condition-4441"><a href="#condition-4441"><span class="linenos">4441</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="condition-4499"><a href="#condition-4499"><span class="linenos">4499</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="condition-4500"><a href="#condition-4500"><span class="linenos">4500</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="condition-4501"><a href="#condition-4501"><span class="linenos">4501</span></a><span class="sd"> Initialize a logical condition expression.</span>
+</span><span id="condition-4502"><a href="#condition-4502"><span class="linenos">4502</span></a>
+</span><span id="condition-4503"><a href="#condition-4503"><span class="linenos">4503</span></a><span class="sd"> Example:</span>
+</span><span id="condition-4504"><a href="#condition-4504"><span class="linenos">4504</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
+</span><span id="condition-4505"><a href="#condition-4505"><span class="linenos">4505</span></a><span class="sd"> &#39;x = 1&#39;</span>
+</span><span id="condition-4506"><a href="#condition-4506"><span class="linenos">4506</span></a>
+</span><span id="condition-4507"><a href="#condition-4507"><span class="linenos">4507</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
+</span><span id="condition-4508"><a href="#condition-4508"><span class="linenos">4508</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
+</span><span id="condition-4509"><a href="#condition-4509"><span class="linenos">4509</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
+</span><span id="condition-4510"><a href="#condition-4510"><span class="linenos">4510</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
+</span><span id="condition-4511"><a href="#condition-4511"><span class="linenos">4511</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
+</span><span id="condition-4512"><a href="#condition-4512"><span class="linenos">4512</span></a>
+</span><span id="condition-4513"><a href="#condition-4513"><span class="linenos">4513</span></a><span class="sd"> Args:</span>
+</span><span id="condition-4514"><a href="#condition-4514"><span class="linenos">4514</span></a><span class="sd"> *expression (str | Expression): the SQL code string to parse.</span>
+</span><span id="condition-4515"><a href="#condition-4515"><span class="linenos">4515</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="condition-4516"><a href="#condition-4516"><span class="linenos">4516</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
+</span><span id="condition-4517"><a href="#condition-4517"><span class="linenos">4517</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="condition-4518"><a href="#condition-4518"><span class="linenos">4518</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="condition-4519"><a href="#condition-4519"><span class="linenos">4519</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="condition-4520"><a href="#condition-4520"><span class="linenos">4520</span></a>
+</span><span id="condition-4521"><a href="#condition-4521"><span class="linenos">4521</span></a><span class="sd"> Returns:</span>
+</span><span id="condition-4522"><a href="#condition-4522"><span class="linenos">4522</span></a><span class="sd"> Condition: the expression</span>
+</span><span id="condition-4523"><a href="#condition-4523"><span class="linenos">4523</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="condition-4524"><a href="#condition-4524"><span class="linenos">4524</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span> <span class="c1"># type: ignore</span>
+</span><span id="condition-4525"><a href="#condition-4525"><span class="linenos">4525</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="condition-4526"><a href="#condition-4526"><span class="linenos">4526</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
+</span><span id="condition-4527"><a href="#condition-4527"><span class="linenos">4527</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="condition-4528"><a href="#condition-4528"><span class="linenos">4528</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="condition-4529"><a href="#condition-4529"><span class="linenos">4529</span></a> <span class="p">)</span>
</span></pre></div>
@@ -43822,24 +44720,24 @@ that the input expression is a SQL string).</li>
</div>
<a class="headerlink" href="#and_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="and_-4444"><a href="#and_-4444"><span class="linenos">4444</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
-</span><span id="and_-4445"><a href="#and_-4445"><span class="linenos">4445</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="and_-4446"><a href="#and_-4446"><span class="linenos">4446</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
-</span><span id="and_-4447"><a href="#and_-4447"><span class="linenos">4447</span></a>
-</span><span id="and_-4448"><a href="#and_-4448"><span class="linenos">4448</span></a><span class="sd"> Example:</span>
-</span><span id="and_-4449"><a href="#and_-4449"><span class="linenos">4449</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_-4450"><a href="#and_-4450"><span class="linenos">4450</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
-</span><span id="and_-4451"><a href="#and_-4451"><span class="linenos">4451</span></a>
-</span><span id="and_-4452"><a href="#and_-4452"><span class="linenos">4452</span></a><span class="sd"> Args:</span>
-</span><span id="and_-4453"><a href="#and_-4453"><span class="linenos">4453</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="and_-4454"><a href="#and_-4454"><span class="linenos">4454</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="and_-4455"><a href="#and_-4455"><span class="linenos">4455</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="and_-4456"><a href="#and_-4456"><span class="linenos">4456</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="and_-4457"><a href="#and_-4457"><span class="linenos">4457</span></a>
-</span><span id="and_-4458"><a href="#and_-4458"><span class="linenos">4458</span></a><span class="sd"> Returns:</span>
-</span><span id="and_-4459"><a href="#and_-4459"><span class="linenos">4459</span></a><span class="sd"> And: the new condition</span>
-</span><span id="and_-4460"><a href="#and_-4460"><span class="linenos">4460</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="and_-4461"><a href="#and_-4461"><span class="linenos">4461</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="and_-4532"><a href="#and_-4532"><span class="linenos">4532</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
+</span><span id="and_-4533"><a href="#and_-4533"><span class="linenos">4533</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="and_-4534"><a href="#and_-4534"><span class="linenos">4534</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
+</span><span id="and_-4535"><a href="#and_-4535"><span class="linenos">4535</span></a>
+</span><span id="and_-4536"><a href="#and_-4536"><span class="linenos">4536</span></a><span class="sd"> Example:</span>
+</span><span id="and_-4537"><a href="#and_-4537"><span class="linenos">4537</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_-4538"><a href="#and_-4538"><span class="linenos">4538</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
+</span><span id="and_-4539"><a href="#and_-4539"><span class="linenos">4539</span></a>
+</span><span id="and_-4540"><a href="#and_-4540"><span class="linenos">4540</span></a><span class="sd"> Args:</span>
+</span><span id="and_-4541"><a href="#and_-4541"><span class="linenos">4541</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="and_-4542"><a href="#and_-4542"><span class="linenos">4542</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="and_-4543"><a href="#and_-4543"><span class="linenos">4543</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="and_-4544"><a href="#and_-4544"><span class="linenos">4544</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="and_-4545"><a href="#and_-4545"><span class="linenos">4545</span></a>
+</span><span id="and_-4546"><a href="#and_-4546"><span class="linenos">4546</span></a><span class="sd"> Returns:</span>
+</span><span id="and_-4547"><a href="#and_-4547"><span class="linenos">4547</span></a><span class="sd"> And: the new condition</span>
+</span><span id="and_-4548"><a href="#and_-4548"><span class="linenos">4548</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="and_-4549"><a href="#and_-4549"><span class="linenos">4549</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -43884,24 +44782,24 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#or_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="or_-4464"><a href="#or_-4464"><span class="linenos">4464</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
-</span><span id="or_-4465"><a href="#or_-4465"><span class="linenos">4465</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="or_-4466"><a href="#or_-4466"><span class="linenos">4466</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
-</span><span id="or_-4467"><a href="#or_-4467"><span class="linenos">4467</span></a>
-</span><span id="or_-4468"><a href="#or_-4468"><span class="linenos">4468</span></a><span class="sd"> Example:</span>
-</span><span id="or_-4469"><a href="#or_-4469"><span class="linenos">4469</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_-4470"><a href="#or_-4470"><span class="linenos">4470</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
-</span><span id="or_-4471"><a href="#or_-4471"><span class="linenos">4471</span></a>
-</span><span id="or_-4472"><a href="#or_-4472"><span class="linenos">4472</span></a><span class="sd"> Args:</span>
-</span><span id="or_-4473"><a href="#or_-4473"><span class="linenos">4473</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="or_-4474"><a href="#or_-4474"><span class="linenos">4474</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="or_-4475"><a href="#or_-4475"><span class="linenos">4475</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="or_-4476"><a href="#or_-4476"><span class="linenos">4476</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="or_-4477"><a href="#or_-4477"><span class="linenos">4477</span></a>
-</span><span id="or_-4478"><a href="#or_-4478"><span class="linenos">4478</span></a><span class="sd"> Returns:</span>
-</span><span id="or_-4479"><a href="#or_-4479"><span class="linenos">4479</span></a><span class="sd"> Or: the new condition</span>
-</span><span id="or_-4480"><a href="#or_-4480"><span class="linenos">4480</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="or_-4481"><a href="#or_-4481"><span class="linenos">4481</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="or_-4552"><a href="#or_-4552"><span class="linenos">4552</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
+</span><span id="or_-4553"><a href="#or_-4553"><span class="linenos">4553</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="or_-4554"><a href="#or_-4554"><span class="linenos">4554</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
+</span><span id="or_-4555"><a href="#or_-4555"><span class="linenos">4555</span></a>
+</span><span id="or_-4556"><a href="#or_-4556"><span class="linenos">4556</span></a><span class="sd"> Example:</span>
+</span><span id="or_-4557"><a href="#or_-4557"><span class="linenos">4557</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_-4558"><a href="#or_-4558"><span class="linenos">4558</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
+</span><span id="or_-4559"><a href="#or_-4559"><span class="linenos">4559</span></a>
+</span><span id="or_-4560"><a href="#or_-4560"><span class="linenos">4560</span></a><span class="sd"> Args:</span>
+</span><span id="or_-4561"><a href="#or_-4561"><span class="linenos">4561</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="or_-4562"><a href="#or_-4562"><span class="linenos">4562</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="or_-4563"><a href="#or_-4563"><span class="linenos">4563</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="or_-4564"><a href="#or_-4564"><span class="linenos">4564</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="or_-4565"><a href="#or_-4565"><span class="linenos">4565</span></a>
+</span><span id="or_-4566"><a href="#or_-4566"><span class="linenos">4566</span></a><span class="sd"> Returns:</span>
+</span><span id="or_-4567"><a href="#or_-4567"><span class="linenos">4567</span></a><span class="sd"> Or: the new condition</span>
+</span><span id="or_-4568"><a href="#or_-4568"><span class="linenos">4568</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="or_-4569"><a href="#or_-4569"><span class="linenos">4569</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -43946,29 +44844,29 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#not_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="not_-4484"><a href="#not_-4484"><span class="linenos">4484</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
-</span><span id="not_-4485"><a href="#not_-4485"><span class="linenos">4485</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="not_-4486"><a href="#not_-4486"><span class="linenos">4486</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
-</span><span id="not_-4487"><a href="#not_-4487"><span class="linenos">4487</span></a>
-</span><span id="not_-4488"><a href="#not_-4488"><span class="linenos">4488</span></a><span class="sd"> Example:</span>
-</span><span id="not_-4489"><a href="#not_-4489"><span class="linenos">4489</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
-</span><span id="not_-4490"><a href="#not_-4490"><span class="linenos">4490</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
-</span><span id="not_-4491"><a href="#not_-4491"><span class="linenos">4491</span></a>
-</span><span id="not_-4492"><a href="#not_-4492"><span class="linenos">4492</span></a><span class="sd"> Args:</span>
-</span><span id="not_-4493"><a href="#not_-4493"><span class="linenos">4493</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
-</span><span id="not_-4494"><a href="#not_-4494"><span class="linenos">4494</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="not_-4495"><a href="#not_-4495"><span class="linenos">4495</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="not_-4496"><a href="#not_-4496"><span class="linenos">4496</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="not_-4497"><a href="#not_-4497"><span class="linenos">4497</span></a>
-</span><span id="not_-4498"><a href="#not_-4498"><span class="linenos">4498</span></a><span class="sd"> Returns:</span>
-</span><span id="not_-4499"><a href="#not_-4499"><span class="linenos">4499</span></a><span class="sd"> Not: the new condition</span>
-</span><span id="not_-4500"><a href="#not_-4500"><span class="linenos">4500</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="not_-4501"><a href="#not_-4501"><span class="linenos">4501</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
-</span><span id="not_-4502"><a href="#not_-4502"><span class="linenos">4502</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="not_-4503"><a href="#not_-4503"><span class="linenos">4503</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="not_-4504"><a href="#not_-4504"><span class="linenos">4504</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="not_-4505"><a href="#not_-4505"><span class="linenos">4505</span></a> <span class="p">)</span>
-</span><span id="not_-4506"><a href="#not_-4506"><span class="linenos">4506</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap_operator</span><span class="p">(</span><span class="n">this</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="not_-4572"><a href="#not_-4572"><span class="linenos">4572</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
+</span><span id="not_-4573"><a href="#not_-4573"><span class="linenos">4573</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="not_-4574"><a href="#not_-4574"><span class="linenos">4574</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
+</span><span id="not_-4575"><a href="#not_-4575"><span class="linenos">4575</span></a>
+</span><span id="not_-4576"><a href="#not_-4576"><span class="linenos">4576</span></a><span class="sd"> Example:</span>
+</span><span id="not_-4577"><a href="#not_-4577"><span class="linenos">4577</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
+</span><span id="not_-4578"><a href="#not_-4578"><span class="linenos">4578</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
+</span><span id="not_-4579"><a href="#not_-4579"><span class="linenos">4579</span></a>
+</span><span id="not_-4580"><a href="#not_-4580"><span class="linenos">4580</span></a><span class="sd"> Args:</span>
+</span><span id="not_-4581"><a href="#not_-4581"><span class="linenos">4581</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
+</span><span id="not_-4582"><a href="#not_-4582"><span class="linenos">4582</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="not_-4583"><a href="#not_-4583"><span class="linenos">4583</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="not_-4584"><a href="#not_-4584"><span class="linenos">4584</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="not_-4585"><a href="#not_-4585"><span class="linenos">4585</span></a>
+</span><span id="not_-4586"><a href="#not_-4586"><span class="linenos">4586</span></a><span class="sd"> Returns:</span>
+</span><span id="not_-4587"><a href="#not_-4587"><span class="linenos">4587</span></a><span class="sd"> Not: the new condition</span>
+</span><span id="not_-4588"><a href="#not_-4588"><span class="linenos">4588</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="not_-4589"><a href="#not_-4589"><span class="linenos">4589</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
+</span><span id="not_-4590"><a href="#not_-4590"><span class="linenos">4590</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="not_-4591"><a href="#not_-4591"><span class="linenos">4591</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="not_-4592"><a href="#not_-4592"><span class="linenos">4592</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="not_-4593"><a href="#not_-4593"><span class="linenos">4593</span></a> <span class="p">)</span>
+</span><span id="not_-4594"><a href="#not_-4594"><span class="linenos">4594</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap_operator</span><span class="p">(</span><span class="n">this</span><span class="p">))</span>
</span></pre></div>
@@ -44013,8 +44911,8 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#paren"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="paren-4509"><a href="#paren-4509"><span class="linenos">4509</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="paren-4510"><a href="#paren-4510"><span class="linenos">4510</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="paren-4597"><a href="#paren-4597"><span class="linenos">4597</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="paren-4598"><a href="#paren-4598"><span class="linenos">4598</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
</span></pre></div>
@@ -44032,30 +44930,30 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#to_identifier"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="to_identifier-4526"><a href="#to_identifier-4526"><span class="linenos">4526</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="to_identifier-4527"><a href="#to_identifier-4527"><span class="linenos">4527</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
-</span><span id="to_identifier-4528"><a href="#to_identifier-4528"><span class="linenos">4528</span></a>
-</span><span id="to_identifier-4529"><a href="#to_identifier-4529"><span class="linenos">4529</span></a><span class="sd"> Args:</span>
-</span><span id="to_identifier-4530"><a href="#to_identifier-4530"><span class="linenos">4530</span></a><span class="sd"> name: The name to turn into an identifier.</span>
-</span><span id="to_identifier-4531"><a href="#to_identifier-4531"><span class="linenos">4531</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
-</span><span id="to_identifier-4532"><a href="#to_identifier-4532"><span class="linenos">4532</span></a>
-</span><span id="to_identifier-4533"><a href="#to_identifier-4533"><span class="linenos">4533</span></a><span class="sd"> Returns:</span>
-</span><span id="to_identifier-4534"><a href="#to_identifier-4534"><span class="linenos">4534</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="to_identifier-4535"><a href="#to_identifier-4535"><span class="linenos">4535</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_identifier-4536"><a href="#to_identifier-4536"><span class="linenos">4536</span></a>
-</span><span id="to_identifier-4537"><a href="#to_identifier-4537"><span class="linenos">4537</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-4538"><a href="#to_identifier-4538"><span class="linenos">4538</span></a> <span class="k">return</span> <span class="kc">None</span>
-</span><span id="to_identifier-4539"><a href="#to_identifier-4539"><span class="linenos">4539</span></a>
-</span><span id="to_identifier-4540"><a href="#to_identifier-4540"><span class="linenos">4540</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-4541"><a href="#to_identifier-4541"><span class="linenos">4541</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">name</span>
-</span><span id="to_identifier-4542"><a href="#to_identifier-4542"><span class="linenos">4542</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-4543"><a href="#to_identifier-4543"><span class="linenos">4543</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-4544"><a href="#to_identifier-4544"><span class="linenos">4544</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-4545"><a href="#to_identifier-4545"><span class="linenos">4545</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-4546"><a href="#to_identifier-4546"><span class="linenos">4546</span></a> <span class="p">)</span>
-</span><span id="to_identifier-4547"><a href="#to_identifier-4547"><span class="linenos">4547</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="to_identifier-4548"><a href="#to_identifier-4548"><span class="linenos">4548</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-4549"><a href="#to_identifier-4549"><span class="linenos">4549</span></a> <span class="k">return</span> <span class="n">identifier</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_identifier-4614"><a href="#to_identifier-4614"><span class="linenos">4614</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="to_identifier-4615"><a href="#to_identifier-4615"><span class="linenos">4615</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
+</span><span id="to_identifier-4616"><a href="#to_identifier-4616"><span class="linenos">4616</span></a>
+</span><span id="to_identifier-4617"><a href="#to_identifier-4617"><span class="linenos">4617</span></a><span class="sd"> Args:</span>
+</span><span id="to_identifier-4618"><a href="#to_identifier-4618"><span class="linenos">4618</span></a><span class="sd"> name: The name to turn into an identifier.</span>
+</span><span id="to_identifier-4619"><a href="#to_identifier-4619"><span class="linenos">4619</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
+</span><span id="to_identifier-4620"><a href="#to_identifier-4620"><span class="linenos">4620</span></a>
+</span><span id="to_identifier-4621"><a href="#to_identifier-4621"><span class="linenos">4621</span></a><span class="sd"> Returns:</span>
+</span><span id="to_identifier-4622"><a href="#to_identifier-4622"><span class="linenos">4622</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="to_identifier-4623"><a href="#to_identifier-4623"><span class="linenos">4623</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_identifier-4624"><a href="#to_identifier-4624"><span class="linenos">4624</span></a>
+</span><span id="to_identifier-4625"><a href="#to_identifier-4625"><span class="linenos">4625</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-4626"><a href="#to_identifier-4626"><span class="linenos">4626</span></a> <span class="k">return</span> <span class="kc">None</span>
+</span><span id="to_identifier-4627"><a href="#to_identifier-4627"><span class="linenos">4627</span></a>
+</span><span id="to_identifier-4628"><a href="#to_identifier-4628"><span class="linenos">4628</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-4629"><a href="#to_identifier-4629"><span class="linenos">4629</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">name</span>
+</span><span id="to_identifier-4630"><a href="#to_identifier-4630"><span class="linenos">4630</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-4631"><a href="#to_identifier-4631"><span class="linenos">4631</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-4632"><a href="#to_identifier-4632"><span class="linenos">4632</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-4633"><a href="#to_identifier-4633"><span class="linenos">4633</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-4634"><a href="#to_identifier-4634"><span class="linenos">4634</span></a> <span class="p">)</span>
+</span><span id="to_identifier-4635"><a href="#to_identifier-4635"><span class="linenos">4635</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="to_identifier-4636"><a href="#to_identifier-4636"><span class="linenos">4636</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-4637"><a href="#to_identifier-4637"><span class="linenos">4637</span></a> <span class="k">return</span> <span class="n">identifier</span>
</span></pre></div>
@@ -44088,23 +44986,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-4555"><a href="#to_interval-4555"><span class="linenos">4555</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-4556"><a href="#to_interval-4556"><span class="linenos">4556</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-4557"><a href="#to_interval-4557"><span class="linenos">4557</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-4558"><a href="#to_interval-4558"><span class="linenos">4558</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-4559"><a href="#to_interval-4559"><span class="linenos">4559</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-4560"><a href="#to_interval-4560"><span class="linenos">4560</span></a>
-</span><span id="to_interval-4561"><a href="#to_interval-4561"><span class="linenos">4561</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-4562"><a href="#to_interval-4562"><span class="linenos">4562</span></a>
-</span><span id="to_interval-4563"><a href="#to_interval-4563"><span class="linenos">4563</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-4564"><a href="#to_interval-4564"><span class="linenos">4564</span></a>
-</span><span id="to_interval-4565"><a href="#to_interval-4565"><span class="linenos">4565</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-4566"><a href="#to_interval-4566"><span class="linenos">4566</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-4567"><a href="#to_interval-4567"><span class="linenos">4567</span></a>
-</span><span id="to_interval-4568"><a href="#to_interval-4568"><span class="linenos">4568</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="to_interval-4569"><a href="#to_interval-4569"><span class="linenos">4569</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-4570"><a href="#to_interval-4570"><span class="linenos">4570</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span>
-</span><span id="to_interval-4571"><a href="#to_interval-4571"><span class="linenos">4571</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_interval-4643"><a href="#to_interval-4643"><span class="linenos">4643</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-4644"><a href="#to_interval-4644"><span class="linenos">4644</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-4645"><a href="#to_interval-4645"><span class="linenos">4645</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-4646"><a href="#to_interval-4646"><span class="linenos">4646</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-4647"><a href="#to_interval-4647"><span class="linenos">4647</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-4648"><a href="#to_interval-4648"><span class="linenos">4648</span></a>
+</span><span id="to_interval-4649"><a href="#to_interval-4649"><span class="linenos">4649</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-4650"><a href="#to_interval-4650"><span class="linenos">4650</span></a>
+</span><span id="to_interval-4651"><a href="#to_interval-4651"><span class="linenos">4651</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-4652"><a href="#to_interval-4652"><span class="linenos">4652</span></a>
+</span><span id="to_interval-4653"><a href="#to_interval-4653"><span class="linenos">4653</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-4654"><a href="#to_interval-4654"><span class="linenos">4654</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-4655"><a href="#to_interval-4655"><span class="linenos">4655</span></a>
+</span><span id="to_interval-4656"><a href="#to_interval-4656"><span class="linenos">4656</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="to_interval-4657"><a href="#to_interval-4657"><span class="linenos">4657</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-4658"><a href="#to_interval-4658"><span class="linenos">4658</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span>
+</span><span id="to_interval-4659"><a href="#to_interval-4659"><span class="linenos">4659</span></a> <span class="p">)</span>
</span></pre></div>
@@ -44124,24 +45022,24 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#to_table"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="to_table-4584"><a href="#to_table-4584"><span class="linenos">4584</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
-</span><span id="to_table-4585"><a href="#to_table-4585"><span class="linenos">4585</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="to_table-4586"><a href="#to_table-4586"><span class="linenos">4586</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-4587"><a href="#to_table-4587"><span class="linenos">4587</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
-</span><span id="to_table-4588"><a href="#to_table-4588"><span class="linenos">4588</span></a>
-</span><span id="to_table-4589"><a href="#to_table-4589"><span class="linenos">4589</span></a><span class="sd"> Args:</span>
-</span><span id="to_table-4590"><a href="#to_table-4590"><span class="linenos">4590</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
-</span><span id="to_table-4591"><a href="#to_table-4591"><span class="linenos">4591</span></a>
-</span><span id="to_table-4592"><a href="#to_table-4592"><span class="linenos">4592</span></a><span class="sd"> Returns:</span>
-</span><span id="to_table-4593"><a href="#to_table-4593"><span class="linenos">4593</span></a><span class="sd"> A table expression.</span>
-</span><span id="to_table-4594"><a href="#to_table-4594"><span class="linenos">4594</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_table-4595"><a href="#to_table-4595"><span class="linenos">4595</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
-</span><span id="to_table-4596"><a href="#to_table-4596"><span class="linenos">4596</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="to_table-4597"><a href="#to_table-4597"><span class="linenos">4597</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="to_table-4598"><a href="#to_table-4598"><span class="linenos">4598</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for a table: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="to_table-4599"><a href="#to_table-4599"><span class="linenos">4599</span></a>
-</span><span id="to_table-4600"><a href="#to_table-4600"><span class="linenos">4600</span></a> <span class="n">catalog</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">table_name</span> <span class="o">=</span> <span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">&quot;.&quot;</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
-</span><span id="to_table-4601"><a href="#to_table-4601"><span class="linenos">4601</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_table-4672"><a href="#to_table-4672"><span class="linenos">4672</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
+</span><span id="to_table-4673"><a href="#to_table-4673"><span class="linenos">4673</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="to_table-4674"><a href="#to_table-4674"><span class="linenos">4674</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-4675"><a href="#to_table-4675"><span class="linenos">4675</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
+</span><span id="to_table-4676"><a href="#to_table-4676"><span class="linenos">4676</span></a>
+</span><span id="to_table-4677"><a href="#to_table-4677"><span class="linenos">4677</span></a><span class="sd"> Args:</span>
+</span><span id="to_table-4678"><a href="#to_table-4678"><span class="linenos">4678</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="to_table-4679"><a href="#to_table-4679"><span class="linenos">4679</span></a>
+</span><span id="to_table-4680"><a href="#to_table-4680"><span class="linenos">4680</span></a><span class="sd"> Returns:</span>
+</span><span id="to_table-4681"><a href="#to_table-4681"><span class="linenos">4681</span></a><span class="sd"> A table expression.</span>
+</span><span id="to_table-4682"><a href="#to_table-4682"><span class="linenos">4682</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_table-4683"><a href="#to_table-4683"><span class="linenos">4683</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
+</span><span id="to_table-4684"><a href="#to_table-4684"><span class="linenos">4684</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="to_table-4685"><a href="#to_table-4685"><span class="linenos">4685</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="to_table-4686"><a href="#to_table-4686"><span class="linenos">4686</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for a table: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="to_table-4687"><a href="#to_table-4687"><span class="linenos">4687</span></a>
+</span><span id="to_table-4688"><a href="#to_table-4688"><span class="linenos">4688</span></a> <span class="n">catalog</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">table_name</span> <span class="o">=</span> <span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">&quot;.&quot;</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
+</span><span id="to_table-4689"><a href="#to_table-4689"><span class="linenos">4689</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span></pre></div>
@@ -44174,22 +45072,22 @@ If a table is passed in then that table is returned.</p>
</div>
<a class="headerlink" href="#to_column"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="to_column-4604"><a href="#to_column-4604"><span class="linenos">4604</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="to_column-4605"><a href="#to_column-4605"><span class="linenos">4605</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="to_column-4606"><a href="#to_column-4606"><span class="linenos">4606</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
-</span><span id="to_column-4607"><a href="#to_column-4607"><span class="linenos">4607</span></a>
-</span><span id="to_column-4608"><a href="#to_column-4608"><span class="linenos">4608</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
-</span><span id="to_column-4609"><a href="#to_column-4609"><span class="linenos">4609</span></a>
-</span><span id="to_column-4610"><a href="#to_column-4610"><span class="linenos">4610</span></a><span class="sd"> Args:</span>
-</span><span id="to_column-4611"><a href="#to_column-4611"><span class="linenos">4611</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
-</span><span id="to_column-4612"><a href="#to_column-4612"><span class="linenos">4612</span></a><span class="sd"> Returns:</span>
-</span><span id="to_column-4613"><a href="#to_column-4613"><span class="linenos">4613</span></a><span class="sd"> Table: A column expression</span>
-</span><span id="to_column-4614"><a href="#to_column-4614"><span class="linenos">4614</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_column-4615"><a href="#to_column-4615"><span class="linenos">4615</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
-</span><span id="to_column-4616"><a href="#to_column-4616"><span class="linenos">4616</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="to_column-4617"><a href="#to_column-4617"><span class="linenos">4617</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="to_column-4618"><a href="#to_column-4618"><span class="linenos">4618</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for column: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="to_column-4619"><a href="#to_column-4619"><span class="linenos">4619</span></a> <span class="k">return</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">sql_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_column-4692"><a href="#to_column-4692"><span class="linenos">4692</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="to_column-4693"><a href="#to_column-4693"><span class="linenos">4693</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="to_column-4694"><a href="#to_column-4694"><span class="linenos">4694</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
+</span><span id="to_column-4695"><a href="#to_column-4695"><span class="linenos">4695</span></a>
+</span><span id="to_column-4696"><a href="#to_column-4696"><span class="linenos">4696</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
+</span><span id="to_column-4697"><a href="#to_column-4697"><span class="linenos">4697</span></a>
+</span><span id="to_column-4698"><a href="#to_column-4698"><span class="linenos">4698</span></a><span class="sd"> Args:</span>
+</span><span id="to_column-4699"><a href="#to_column-4699"><span class="linenos">4699</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
+</span><span id="to_column-4700"><a href="#to_column-4700"><span class="linenos">4700</span></a><span class="sd"> Returns:</span>
+</span><span id="to_column-4701"><a href="#to_column-4701"><span class="linenos">4701</span></a><span class="sd"> Table: A column expression</span>
+</span><span id="to_column-4702"><a href="#to_column-4702"><span class="linenos">4702</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_column-4703"><a href="#to_column-4703"><span class="linenos">4703</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
+</span><span id="to_column-4704"><a href="#to_column-4704"><span class="linenos">4704</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="to_column-4705"><a href="#to_column-4705"><span class="linenos">4705</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="to_column-4706"><a href="#to_column-4706"><span class="linenos">4706</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for column: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="to_column-4707"><a href="#to_column-4707"><span class="linenos">4707</span></a> <span class="k">return</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">sql_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span></pre></div>
@@ -44223,60 +45121,62 @@ If a table is passed in then that table is returned.</p>
</div>
<a class="headerlink" href="#alias_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="alias_-4622"><a href="#alias_-4622"><span class="linenos">4622</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
-</span><span id="alias_-4623"><a href="#alias_-4623"><span class="linenos">4623</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="alias_-4624"><a href="#alias_-4624"><span class="linenos">4624</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
-</span><span id="alias_-4625"><a href="#alias_-4625"><span class="linenos">4625</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_-4626"><a href="#alias_-4626"><span class="linenos">4626</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_-4627"><a href="#alias_-4627"><span class="linenos">4627</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_-4628"><a href="#alias_-4628"><span class="linenos">4628</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="alias_-4629"><a href="#alias_-4629"><span class="linenos">4629</span></a><span class="p">):</span>
-</span><span id="alias_-4630"><a href="#alias_-4630"><span class="linenos">4630</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
-</span><span id="alias_-4631"><a href="#alias_-4631"><span class="linenos">4631</span></a>
-</span><span id="alias_-4632"><a href="#alias_-4632"><span class="linenos">4632</span></a><span class="sd"> Example:</span>
-</span><span id="alias_-4633"><a href="#alias_-4633"><span class="linenos">4633</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
-</span><span id="alias_-4634"><a href="#alias_-4634"><span class="linenos">4634</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
-</span><span id="alias_-4635"><a href="#alias_-4635"><span class="linenos">4635</span></a>
-</span><span id="alias_-4636"><a href="#alias_-4636"><span class="linenos">4636</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_-4637"><a href="#alias_-4637"><span class="linenos">4637</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
-</span><span id="alias_-4638"><a href="#alias_-4638"><span class="linenos">4638</span></a>
-</span><span id="alias_-4639"><a href="#alias_-4639"><span class="linenos">4639</span></a><span class="sd"> Args:</span>
-</span><span id="alias_-4640"><a href="#alias_-4640"><span class="linenos">4640</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="alias_-4641"><a href="#alias_-4641"><span class="linenos">4641</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="alias_-4642"><a href="#alias_-4642"><span class="linenos">4642</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
-</span><span id="alias_-4643"><a href="#alias_-4643"><span class="linenos">4643</span></a><span class="sd"> special characters it is quoted.</span>
-</span><span id="alias_-4644"><a href="#alias_-4644"><span class="linenos">4644</span></a><span class="sd"> table: Whether or not to create a table alias, can also be a list of columns.</span>
-</span><span id="alias_-4645"><a href="#alias_-4645"><span class="linenos">4645</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
-</span><span id="alias_-4646"><a href="#alias_-4646"><span class="linenos">4646</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="alias_-4647"><a href="#alias_-4647"><span class="linenos">4647</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="alias_-4648"><a href="#alias_-4648"><span class="linenos">4648</span></a>
-</span><span id="alias_-4649"><a href="#alias_-4649"><span class="linenos">4649</span></a><span class="sd"> Returns:</span>
-</span><span id="alias_-4650"><a href="#alias_-4650"><span class="linenos">4650</span></a><span class="sd"> Alias: the aliased expression</span>
-</span><span id="alias_-4651"><a href="#alias_-4651"><span class="linenos">4651</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="alias_-4652"><a href="#alias_-4652"><span class="linenos">4652</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="alias_-4653"><a href="#alias_-4653"><span class="linenos">4653</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_-4654"><a href="#alias_-4654"><span class="linenos">4654</span></a>
-</span><span id="alias_-4655"><a href="#alias_-4655"><span class="linenos">4655</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="alias_-4656"><a href="#alias_-4656"><span class="linenos">4656</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_-4657"><a href="#alias_-4657"><span class="linenos">4657</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_-4658"><a href="#alias_-4658"><span class="linenos">4658</span></a>
-</span><span id="alias_-4659"><a href="#alias_-4659"><span class="linenos">4659</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_-4660"><a href="#alias_-4660"><span class="linenos">4660</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_-4661"><a href="#alias_-4661"><span class="linenos">4661</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_-4662"><a href="#alias_-4662"><span class="linenos">4662</span></a>
-</span><span id="alias_-4663"><a href="#alias_-4663"><span class="linenos">4663</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="alias_-4664"><a href="#alias_-4664"><span class="linenos">4664</span></a>
-</span><span id="alias_-4665"><a href="#alias_-4665"><span class="linenos">4665</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_-4666"><a href="#alias_-4666"><span class="linenos">4666</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_-4667"><a href="#alias_-4667"><span class="linenos">4667</span></a> <span class="c1"># for the complete Window expression.</span>
-</span><span id="alias_-4668"><a href="#alias_-4668"><span class="linenos">4668</span></a> <span class="c1">#</span>
-</span><span id="alias_-4669"><a href="#alias_-4669"><span class="linenos">4669</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
-</span><span id="alias_-4670"><a href="#alias_-4670"><span class="linenos">4670</span></a>
-</span><span id="alias_-4671"><a href="#alias_-4671"><span class="linenos">4671</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_-4672"><a href="#alias_-4672"><span class="linenos">4672</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="alias_-4673"><a href="#alias_-4673"><span class="linenos">4673</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_-4674"><a href="#alias_-4674"><span class="linenos">4674</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="alias_-4675"><a href="#alias_-4675"><span class="linenos">4675</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_-4710"><a href="#alias_-4710"><span class="linenos">4710</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
+</span><span id="alias_-4711"><a href="#alias_-4711"><span class="linenos">4711</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="alias_-4712"><a href="#alias_-4712"><span class="linenos">4712</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
+</span><span id="alias_-4713"><a href="#alias_-4713"><span class="linenos">4713</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_-4714"><a href="#alias_-4714"><span class="linenos">4714</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_-4715"><a href="#alias_-4715"><span class="linenos">4715</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_-4716"><a href="#alias_-4716"><span class="linenos">4716</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="alias_-4717"><a href="#alias_-4717"><span class="linenos">4717</span></a><span class="p">):</span>
+</span><span id="alias_-4718"><a href="#alias_-4718"><span class="linenos">4718</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
+</span><span id="alias_-4719"><a href="#alias_-4719"><span class="linenos">4719</span></a>
+</span><span id="alias_-4720"><a href="#alias_-4720"><span class="linenos">4720</span></a><span class="sd"> Example:</span>
+</span><span id="alias_-4721"><a href="#alias_-4721"><span class="linenos">4721</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
+</span><span id="alias_-4722"><a href="#alias_-4722"><span class="linenos">4722</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="alias_-4723"><a href="#alias_-4723"><span class="linenos">4723</span></a>
+</span><span id="alias_-4724"><a href="#alias_-4724"><span class="linenos">4724</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_-4725"><a href="#alias_-4725"><span class="linenos">4725</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
+</span><span id="alias_-4726"><a href="#alias_-4726"><span class="linenos">4726</span></a>
+</span><span id="alias_-4727"><a href="#alias_-4727"><span class="linenos">4727</span></a><span class="sd"> Args:</span>
+</span><span id="alias_-4728"><a href="#alias_-4728"><span class="linenos">4728</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="alias_-4729"><a href="#alias_-4729"><span class="linenos">4729</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="alias_-4730"><a href="#alias_-4730"><span class="linenos">4730</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
+</span><span id="alias_-4731"><a href="#alias_-4731"><span class="linenos">4731</span></a><span class="sd"> special characters it is quoted.</span>
+</span><span id="alias_-4732"><a href="#alias_-4732"><span class="linenos">4732</span></a><span class="sd"> table: Whether or not to create a table alias, can also be a list of columns.</span>
+</span><span id="alias_-4733"><a href="#alias_-4733"><span class="linenos">4733</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
+</span><span id="alias_-4734"><a href="#alias_-4734"><span class="linenos">4734</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="alias_-4735"><a href="#alias_-4735"><span class="linenos">4735</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="alias_-4736"><a href="#alias_-4736"><span class="linenos">4736</span></a>
+</span><span id="alias_-4737"><a href="#alias_-4737"><span class="linenos">4737</span></a><span class="sd"> Returns:</span>
+</span><span id="alias_-4738"><a href="#alias_-4738"><span class="linenos">4738</span></a><span class="sd"> Alias: the aliased expression</span>
+</span><span id="alias_-4739"><a href="#alias_-4739"><span class="linenos">4739</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="alias_-4740"><a href="#alias_-4740"><span class="linenos">4740</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="alias_-4741"><a href="#alias_-4741"><span class="linenos">4741</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_-4742"><a href="#alias_-4742"><span class="linenos">4742</span></a>
+</span><span id="alias_-4743"><a href="#alias_-4743"><span class="linenos">4743</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="alias_-4744"><a href="#alias_-4744"><span class="linenos">4744</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_-4745"><a href="#alias_-4745"><span class="linenos">4745</span></a>
+</span><span id="alias_-4746"><a href="#alias_-4746"><span class="linenos">4746</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">)</span> <span class="k">else</span> <span class="n">exp</span>
+</span><span id="alias_-4747"><a href="#alias_-4747"><span class="linenos">4747</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_-4748"><a href="#alias_-4748"><span class="linenos">4748</span></a>
+</span><span id="alias_-4749"><a href="#alias_-4749"><span class="linenos">4749</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_-4750"><a href="#alias_-4750"><span class="linenos">4750</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_-4751"><a href="#alias_-4751"><span class="linenos">4751</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_-4752"><a href="#alias_-4752"><span class="linenos">4752</span></a>
+</span><span id="alias_-4753"><a href="#alias_-4753"><span class="linenos">4753</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="alias_-4754"><a href="#alias_-4754"><span class="linenos">4754</span></a>
+</span><span id="alias_-4755"><a href="#alias_-4755"><span class="linenos">4755</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_-4756"><a href="#alias_-4756"><span class="linenos">4756</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_-4757"><a href="#alias_-4757"><span class="linenos">4757</span></a> <span class="c1"># for the complete Window expression.</span>
+</span><span id="alias_-4758"><a href="#alias_-4758"><span class="linenos">4758</span></a> <span class="c1">#</span>
+</span><span id="alias_-4759"><a href="#alias_-4759"><span class="linenos">4759</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</span><span id="alias_-4760"><a href="#alias_-4760"><span class="linenos">4760</span></a>
+</span><span id="alias_-4761"><a href="#alias_-4761"><span class="linenos">4761</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_-4762"><a href="#alias_-4762"><span class="linenos">4762</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="alias_-4763"><a href="#alias_-4763"><span class="linenos">4763</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_-4764"><a href="#alias_-4764"><span class="linenos">4764</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="alias_-4765"><a href="#alias_-4765"><span class="linenos">4765</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>
@@ -44331,27 +45231,27 @@ special characters it is quoted.</li>
</div>
<a class="headerlink" href="#subquery"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="subquery-4678"><a href="#subquery-4678"><span class="linenos">4678</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
-</span><span id="subquery-4679"><a href="#subquery-4679"><span class="linenos">4679</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="subquery-4680"><a href="#subquery-4680"><span class="linenos">4680</span></a><span class="sd"> Build a subquery expression.</span>
-</span><span id="subquery-4681"><a href="#subquery-4681"><span class="linenos">4681</span></a>
-</span><span id="subquery-4682"><a href="#subquery-4682"><span class="linenos">4682</span></a><span class="sd"> Example:</span>
-</span><span id="subquery-4683"><a href="#subquery-4683"><span class="linenos">4683</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-4684"><a href="#subquery-4684"><span class="linenos">4684</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
-</span><span id="subquery-4685"><a href="#subquery-4685"><span class="linenos">4685</span></a>
-</span><span id="subquery-4686"><a href="#subquery-4686"><span class="linenos">4686</span></a><span class="sd"> Args:</span>
-</span><span id="subquery-4687"><a href="#subquery-4687"><span class="linenos">4687</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
-</span><span id="subquery-4688"><a href="#subquery-4688"><span class="linenos">4688</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="subquery-4689"><a href="#subquery-4689"><span class="linenos">4689</span></a><span class="sd"> alias (str | Expression): the alias name to use.</span>
-</span><span id="subquery-4690"><a href="#subquery-4690"><span class="linenos">4690</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="subquery-4691"><a href="#subquery-4691"><span class="linenos">4691</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="subquery-4692"><a href="#subquery-4692"><span class="linenos">4692</span></a>
-</span><span id="subquery-4693"><a href="#subquery-4693"><span class="linenos">4693</span></a><span class="sd"> Returns:</span>
-</span><span id="subquery-4694"><a href="#subquery-4694"><span class="linenos">4694</span></a><span class="sd"> Select: a new select with the subquery expression included</span>
-</span><span id="subquery-4695"><a href="#subquery-4695"><span class="linenos">4695</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="subquery-4696"><a href="#subquery-4696"><span class="linenos">4696</span></a>
-</span><span id="subquery-4697"><a href="#subquery-4697"><span class="linenos">4697</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span>
-</span><span id="subquery-4698"><a href="#subquery-4698"><span class="linenos">4698</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-4768"><a href="#subquery-4768"><span class="linenos">4768</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span>
+</span><span id="subquery-4769"><a href="#subquery-4769"><span class="linenos">4769</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="subquery-4770"><a href="#subquery-4770"><span class="linenos">4770</span></a><span class="sd"> Build a subquery expression.</span>
+</span><span id="subquery-4771"><a href="#subquery-4771"><span class="linenos">4771</span></a>
+</span><span id="subquery-4772"><a href="#subquery-4772"><span class="linenos">4772</span></a><span class="sd"> Example:</span>
+</span><span id="subquery-4773"><a href="#subquery-4773"><span class="linenos">4773</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-4774"><a href="#subquery-4774"><span class="linenos">4774</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
+</span><span id="subquery-4775"><a href="#subquery-4775"><span class="linenos">4775</span></a>
+</span><span id="subquery-4776"><a href="#subquery-4776"><span class="linenos">4776</span></a><span class="sd"> Args:</span>
+</span><span id="subquery-4777"><a href="#subquery-4777"><span class="linenos">4777</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
+</span><span id="subquery-4778"><a href="#subquery-4778"><span class="linenos">4778</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="subquery-4779"><a href="#subquery-4779"><span class="linenos">4779</span></a><span class="sd"> alias (str | Expression): the alias name to use.</span>
+</span><span id="subquery-4780"><a href="#subquery-4780"><span class="linenos">4780</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="subquery-4781"><a href="#subquery-4781"><span class="linenos">4781</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="subquery-4782"><a href="#subquery-4782"><span class="linenos">4782</span></a>
+</span><span id="subquery-4783"><a href="#subquery-4783"><span class="linenos">4783</span></a><span class="sd"> Returns:</span>
+</span><span id="subquery-4784"><a href="#subquery-4784"><span class="linenos">4784</span></a><span class="sd"> Select: a new select with the subquery expression included</span>
+</span><span id="subquery-4785"><a href="#subquery-4785"><span class="linenos">4785</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="subquery-4786"><a href="#subquery-4786"><span class="linenos">4786</span></a>
+</span><span id="subquery-4787"><a href="#subquery-4787"><span class="linenos">4787</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span>
+</span><span id="subquery-4788"><a href="#subquery-4788"><span class="linenos">4788</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>
@@ -44397,31 +45297,31 @@ 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-4701"><a href="#column-4701"><span class="linenos">4701</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="column-4702"><a href="#column-4702"><span class="linenos">4702</span></a> <span class="n">col</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
-</span><span id="column-4703"><a href="#column-4703"><span class="linenos">4703</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="column-4704"><a href="#column-4704"><span class="linenos">4704</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="column-4705"><a href="#column-4705"><span class="linenos">4705</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="column-4706"><a href="#column-4706"><span class="linenos">4706</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="column-4707"><a href="#column-4707"><span class="linenos">4707</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="column-4708"><a href="#column-4708"><span class="linenos">4708</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="column-4709"><a href="#column-4709"><span class="linenos">4709</span></a><span class="sd"> Build a Column.</span>
-</span><span id="column-4710"><a href="#column-4710"><span class="linenos">4710</span></a>
-</span><span id="column-4711"><a href="#column-4711"><span class="linenos">4711</span></a><span class="sd"> Args:</span>
-</span><span id="column-4712"><a href="#column-4712"><span class="linenos">4712</span></a><span class="sd"> col: column name</span>
-</span><span id="column-4713"><a href="#column-4713"><span class="linenos">4713</span></a><span class="sd"> table: table name</span>
-</span><span id="column-4714"><a href="#column-4714"><span class="linenos">4714</span></a><span class="sd"> db: db name</span>
-</span><span id="column-4715"><a href="#column-4715"><span class="linenos">4715</span></a><span class="sd"> catalog: catalog name</span>
-</span><span id="column-4716"><a href="#column-4716"><span class="linenos">4716</span></a><span class="sd"> quoted: whether or not to force quote each part</span>
-</span><span id="column-4717"><a href="#column-4717"><span class="linenos">4717</span></a><span class="sd"> Returns:</span>
-</span><span id="column-4718"><a href="#column-4718"><span class="linenos">4718</span></a><span class="sd"> Column: column instance</span>
-</span><span id="column-4719"><a href="#column-4719"><span class="linenos">4719</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="column-4720"><a href="#column-4720"><span class="linenos">4720</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
-</span><span id="column-4721"><a href="#column-4721"><span class="linenos">4721</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="column-4722"><a href="#column-4722"><span class="linenos">4722</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="column-4723"><a href="#column-4723"><span class="linenos">4723</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="column-4724"><a href="#column-4724"><span class="linenos">4724</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="column-4725"><a href="#column-4725"><span class="linenos">4725</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="column-4791"><a href="#column-4791"><span class="linenos">4791</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="column-4792"><a href="#column-4792"><span class="linenos">4792</span></a> <span class="n">col</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
+</span><span id="column-4793"><a href="#column-4793"><span class="linenos">4793</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="column-4794"><a href="#column-4794"><span class="linenos">4794</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="column-4795"><a href="#column-4795"><span class="linenos">4795</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="column-4796"><a href="#column-4796"><span class="linenos">4796</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="column-4797"><a href="#column-4797"><span class="linenos">4797</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="column-4798"><a href="#column-4798"><span class="linenos">4798</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="column-4799"><a href="#column-4799"><span class="linenos">4799</span></a><span class="sd"> Build a Column.</span>
+</span><span id="column-4800"><a href="#column-4800"><span class="linenos">4800</span></a>
+</span><span id="column-4801"><a href="#column-4801"><span class="linenos">4801</span></a><span class="sd"> Args:</span>
+</span><span id="column-4802"><a href="#column-4802"><span class="linenos">4802</span></a><span class="sd"> col: column name</span>
+</span><span id="column-4803"><a href="#column-4803"><span class="linenos">4803</span></a><span class="sd"> table: table name</span>
+</span><span id="column-4804"><a href="#column-4804"><span class="linenos">4804</span></a><span class="sd"> db: db name</span>
+</span><span id="column-4805"><a href="#column-4805"><span class="linenos">4805</span></a><span class="sd"> catalog: catalog name</span>
+</span><span id="column-4806"><a href="#column-4806"><span class="linenos">4806</span></a><span class="sd"> quoted: whether or not to force quote each part</span>
+</span><span id="column-4807"><a href="#column-4807"><span class="linenos">4807</span></a><span class="sd"> Returns:</span>
+</span><span id="column-4808"><a href="#column-4808"><span class="linenos">4808</span></a><span class="sd"> Column: column instance</span>
+</span><span id="column-4809"><a href="#column-4809"><span class="linenos">4809</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="column-4810"><a href="#column-4810"><span class="linenos">4810</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
+</span><span id="column-4811"><a href="#column-4811"><span class="linenos">4811</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="column-4812"><a href="#column-4812"><span class="linenos">4812</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="column-4813"><a href="#column-4813"><span class="linenos">4813</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="column-4814"><a href="#column-4814"><span class="linenos">4814</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="column-4815"><a href="#column-4815"><span class="linenos">4815</span></a> <span class="p">)</span>
</span></pre></div>
@@ -44457,22 +45357,22 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#cast"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="cast-4728"><a href="#cast-4728"><span class="linenos">4728</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
-</span><span id="cast-4729"><a href="#cast-4729"><span class="linenos">4729</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
-</span><span id="cast-4730"><a href="#cast-4730"><span class="linenos">4730</span></a>
-</span><span id="cast-4731"><a href="#cast-4731"><span class="linenos">4731</span></a><span class="sd"> Example:</span>
-</span><span id="cast-4732"><a href="#cast-4732"><span class="linenos">4732</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
-</span><span id="cast-4733"><a href="#cast-4733"><span class="linenos">4733</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
-</span><span id="cast-4734"><a href="#cast-4734"><span class="linenos">4734</span></a>
-</span><span id="cast-4735"><a href="#cast-4735"><span class="linenos">4735</span></a><span class="sd"> Args:</span>
-</span><span id="cast-4736"><a href="#cast-4736"><span class="linenos">4736</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="cast-4737"><a href="#cast-4737"><span class="linenos">4737</span></a><span class="sd"> to: The datatype to cast to.</span>
-</span><span id="cast-4738"><a href="#cast-4738"><span class="linenos">4738</span></a>
-</span><span id="cast-4739"><a href="#cast-4739"><span class="linenos">4739</span></a><span class="sd"> Returns:</span>
-</span><span id="cast-4740"><a href="#cast-4740"><span class="linenos">4740</span></a><span class="sd"> A cast node.</span>
-</span><span id="cast-4741"><a href="#cast-4741"><span class="linenos">4741</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="cast-4742"><a href="#cast-4742"><span class="linenos">4742</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="cast-4743"><a href="#cast-4743"><span class="linenos">4743</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="cast-4818"><a href="#cast-4818"><span class="linenos">4818</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
+</span><span id="cast-4819"><a href="#cast-4819"><span class="linenos">4819</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
+</span><span id="cast-4820"><a href="#cast-4820"><span class="linenos">4820</span></a>
+</span><span id="cast-4821"><a href="#cast-4821"><span class="linenos">4821</span></a><span class="sd"> Example:</span>
+</span><span id="cast-4822"><a href="#cast-4822"><span class="linenos">4822</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
+</span><span id="cast-4823"><a href="#cast-4823"><span class="linenos">4823</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
+</span><span id="cast-4824"><a href="#cast-4824"><span class="linenos">4824</span></a>
+</span><span id="cast-4825"><a href="#cast-4825"><span class="linenos">4825</span></a><span class="sd"> Args:</span>
+</span><span id="cast-4826"><a href="#cast-4826"><span class="linenos">4826</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="cast-4827"><a href="#cast-4827"><span class="linenos">4827</span></a><span class="sd"> to: The datatype to cast to.</span>
+</span><span id="cast-4828"><a href="#cast-4828"><span class="linenos">4828</span></a>
+</span><span id="cast-4829"><a href="#cast-4829"><span class="linenos">4829</span></a><span class="sd"> Returns:</span>
+</span><span id="cast-4830"><a href="#cast-4830"><span class="linenos">4830</span></a><span class="sd"> A cast node.</span>
+</span><span id="cast-4831"><a href="#cast-4831"><span class="linenos">4831</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="cast-4832"><a href="#cast-4832"><span class="linenos">4832</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="cast-4833"><a href="#cast-4833"><span class="linenos">4833</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span></pre></div>
@@ -44515,23 +45415,23 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#table_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="table_-4746"><a href="#table_-4746"><span class="linenos">4746</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="table_-4747"><a href="#table_-4747"><span class="linenos">4747</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
-</span><span id="table_-4748"><a href="#table_-4748"><span class="linenos">4748</span></a>
-</span><span id="table_-4749"><a href="#table_-4749"><span class="linenos">4749</span></a><span class="sd"> Args:</span>
-</span><span id="table_-4750"><a href="#table_-4750"><span class="linenos">4750</span></a><span class="sd"> table (str | Expression): column name</span>
-</span><span id="table_-4751"><a href="#table_-4751"><span class="linenos">4751</span></a><span class="sd"> db (str | Expression): db name</span>
-</span><span id="table_-4752"><a href="#table_-4752"><span class="linenos">4752</span></a><span class="sd"> catalog (str | Expression): catalog name</span>
-</span><span id="table_-4753"><a href="#table_-4753"><span class="linenos">4753</span></a>
-</span><span id="table_-4754"><a href="#table_-4754"><span class="linenos">4754</span></a><span class="sd"> Returns:</span>
-</span><span id="table_-4755"><a href="#table_-4755"><span class="linenos">4755</span></a><span class="sd"> Table: table instance</span>
-</span><span id="table_-4756"><a href="#table_-4756"><span class="linenos">4756</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="table_-4757"><a href="#table_-4757"><span class="linenos">4757</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
-</span><span id="table_-4758"><a href="#table_-4758"><span class="linenos">4758</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="table_-4759"><a href="#table_-4759"><span class="linenos">4759</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="table_-4760"><a href="#table_-4760"><span class="linenos">4760</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="table_-4761"><a href="#table_-4761"><span class="linenos">4761</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_-4762"><a href="#table_-4762"><span class="linenos">4762</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="table_-4836"><a href="#table_-4836"><span class="linenos">4836</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="table_-4837"><a href="#table_-4837"><span class="linenos">4837</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
+</span><span id="table_-4838"><a href="#table_-4838"><span class="linenos">4838</span></a>
+</span><span id="table_-4839"><a href="#table_-4839"><span class="linenos">4839</span></a><span class="sd"> Args:</span>
+</span><span id="table_-4840"><a href="#table_-4840"><span class="linenos">4840</span></a><span class="sd"> table (str | Expression): column name</span>
+</span><span id="table_-4841"><a href="#table_-4841"><span class="linenos">4841</span></a><span class="sd"> db (str | Expression): db name</span>
+</span><span id="table_-4842"><a href="#table_-4842"><span class="linenos">4842</span></a><span class="sd"> catalog (str | Expression): catalog name</span>
+</span><span id="table_-4843"><a href="#table_-4843"><span class="linenos">4843</span></a>
+</span><span id="table_-4844"><a href="#table_-4844"><span class="linenos">4844</span></a><span class="sd"> Returns:</span>
+</span><span id="table_-4845"><a href="#table_-4845"><span class="linenos">4845</span></a><span class="sd"> Table: table instance</span>
+</span><span id="table_-4846"><a href="#table_-4846"><span class="linenos">4846</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="table_-4847"><a href="#table_-4847"><span class="linenos">4847</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
+</span><span id="table_-4848"><a href="#table_-4848"><span class="linenos">4848</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="table_-4849"><a href="#table_-4849"><span class="linenos">4849</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="table_-4850"><a href="#table_-4850"><span class="linenos">4850</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="table_-4851"><a href="#table_-4851"><span class="linenos">4851</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_-4852"><a href="#table_-4852"><span class="linenos">4852</span></a> <span class="p">)</span>
</span></pre></div>
@@ -44565,46 +45465,46 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#values"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="values-4765"><a href="#values-4765"><span class="linenos">4765</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
-</span><span id="values-4766"><a href="#values-4766"><span class="linenos">4766</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-4767"><a href="#values-4767"><span class="linenos">4767</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-4768"><a href="#values-4768"><span class="linenos">4768</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-4769"><a href="#values-4769"><span class="linenos">4769</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
-</span><span id="values-4770"><a href="#values-4770"><span class="linenos">4770</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
-</span><span id="values-4771"><a href="#values-4771"><span class="linenos">4771</span></a>
-</span><span id="values-4772"><a href="#values-4772"><span class="linenos">4772</span></a><span class="sd"> Example:</span>
-</span><span id="values-4773"><a href="#values-4773"><span class="linenos">4773</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
-</span><span id="values-4774"><a href="#values-4774"><span class="linenos">4774</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
-</span><span id="values-4775"><a href="#values-4775"><span class="linenos">4775</span></a>
-</span><span id="values-4776"><a href="#values-4776"><span class="linenos">4776</span></a><span class="sd"> Args:</span>
-</span><span id="values-4777"><a href="#values-4777"><span class="linenos">4777</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
-</span><span id="values-4778"><a href="#values-4778"><span class="linenos">4778</span></a><span class="sd"> alias: optional alias</span>
-</span><span id="values-4779"><a href="#values-4779"><span class="linenos">4779</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-4780"><a href="#values-4780"><span class="linenos">4780</span></a><span class="sd"> If either are provided then an alias is also required.</span>
-</span><span id="values-4781"><a href="#values-4781"><span class="linenos">4781</span></a><span class="sd"> If a dictionary is provided then the first column of the values will be casted to the expected type</span>
-</span><span id="values-4782"><a href="#values-4782"><span class="linenos">4782</span></a><span class="sd"> in order to help with type inference.</span>
-</span><span id="values-4783"><a href="#values-4783"><span class="linenos">4783</span></a>
-</span><span id="values-4784"><a href="#values-4784"><span class="linenos">4784</span></a><span class="sd"> Returns:</span>
-</span><span id="values-4785"><a href="#values-4785"><span class="linenos">4785</span></a><span class="sd"> Values: the Values expression object</span>
-</span><span id="values-4786"><a href="#values-4786"><span class="linenos">4786</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="values-4787"><a href="#values-4787"><span class="linenos">4787</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-4788"><a href="#values-4788"><span class="linenos">4788</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-4789"><a href="#values-4789"><span class="linenos">4789</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="p">(</span>
-</span><span id="values-4790"><a href="#values-4790"><span class="linenos">4790</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-4791"><a href="#values-4791"><span class="linenos">4791</span></a> <span class="k">if</span> <span class="n">columns</span>
-</span><span id="values-4792"><a href="#values-4792"><span class="linenos">4792</span></a> <span class="k">else</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="values-4793"><a href="#values-4793"><span class="linenos">4793</span></a> <span class="p">)</span>
-</span><span id="values-4794"><a href="#values-4794"><span class="linenos">4794</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-4795"><a href="#values-4795"><span class="linenos">4795</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">columns</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
-</span><span id="values-4796"><a href="#values-4796"><span class="linenos">4796</span></a> <span class="n">types</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">())</span>
-</span><span id="values-4797"><a href="#values-4797"><span class="linenos">4797</span></a> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="values-4798"><a href="#values-4798"><span class="linenos">4798</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="values-4799"><a href="#values-4799"><span class="linenos">4799</span></a> <span class="p">[</span><span class="n">cast</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">types</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span><span class="p">)],</span>
-</span><span id="values-4800"><a href="#values-4800"><span class="linenos">4800</span></a> <span class="p">)</span>
-</span><span id="values-4801"><a href="#values-4801"><span class="linenos">4801</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
-</span><span id="values-4802"><a href="#values-4802"><span class="linenos">4802</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="values-4803"><a href="#values-4803"><span class="linenos">4803</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span>
-</span><span id="values-4804"><a href="#values-4804"><span class="linenos">4804</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="values-4855"><a href="#values-4855"><span class="linenos">4855</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
+</span><span id="values-4856"><a href="#values-4856"><span class="linenos">4856</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-4857"><a href="#values-4857"><span class="linenos">4857</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-4858"><a href="#values-4858"><span class="linenos">4858</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-4859"><a href="#values-4859"><span class="linenos">4859</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
+</span><span id="values-4860"><a href="#values-4860"><span class="linenos">4860</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
+</span><span id="values-4861"><a href="#values-4861"><span class="linenos">4861</span></a>
+</span><span id="values-4862"><a href="#values-4862"><span class="linenos">4862</span></a><span class="sd"> Example:</span>
+</span><span id="values-4863"><a href="#values-4863"><span class="linenos">4863</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
+</span><span id="values-4864"><a href="#values-4864"><span class="linenos">4864</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
+</span><span id="values-4865"><a href="#values-4865"><span class="linenos">4865</span></a>
+</span><span id="values-4866"><a href="#values-4866"><span class="linenos">4866</span></a><span class="sd"> Args:</span>
+</span><span id="values-4867"><a href="#values-4867"><span class="linenos">4867</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
+</span><span id="values-4868"><a href="#values-4868"><span class="linenos">4868</span></a><span class="sd"> alias: optional alias</span>
+</span><span id="values-4869"><a href="#values-4869"><span class="linenos">4869</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-4870"><a href="#values-4870"><span class="linenos">4870</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+</span><span id="values-4871"><a href="#values-4871"><span class="linenos">4871</span></a><span class="sd"> If a dictionary is provided then the first column of the values will be casted to the expected type</span>
+</span><span id="values-4872"><a href="#values-4872"><span class="linenos">4872</span></a><span class="sd"> in order to help with type inference.</span>
+</span><span id="values-4873"><a href="#values-4873"><span class="linenos">4873</span></a>
+</span><span id="values-4874"><a href="#values-4874"><span class="linenos">4874</span></a><span class="sd"> Returns:</span>
+</span><span id="values-4875"><a href="#values-4875"><span class="linenos">4875</span></a><span class="sd"> Values: the Values expression object</span>
+</span><span id="values-4876"><a href="#values-4876"><span class="linenos">4876</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="values-4877"><a href="#values-4877"><span class="linenos">4877</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-4878"><a href="#values-4878"><span class="linenos">4878</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-4879"><a href="#values-4879"><span class="linenos">4879</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="p">(</span>
+</span><span id="values-4880"><a href="#values-4880"><span class="linenos">4880</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-4881"><a href="#values-4881"><span class="linenos">4881</span></a> <span class="k">if</span> <span class="n">columns</span>
+</span><span id="values-4882"><a href="#values-4882"><span class="linenos">4882</span></a> <span class="k">else</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="values-4883"><a href="#values-4883"><span class="linenos">4883</span></a> <span class="p">)</span>
+</span><span id="values-4884"><a href="#values-4884"><span class="linenos">4884</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-4885"><a href="#values-4885"><span class="linenos">4885</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">columns</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
+</span><span id="values-4886"><a href="#values-4886"><span class="linenos">4886</span></a> <span class="n">types</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">())</span>
+</span><span id="values-4887"><a href="#values-4887"><span class="linenos">4887</span></a> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="values-4888"><a href="#values-4888"><span class="linenos">4888</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="values-4889"><a href="#values-4889"><span class="linenos">4889</span></a> <span class="p">[</span><span class="n">cast</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">types</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span><span class="p">)],</span>
+</span><span id="values-4890"><a href="#values-4890"><span class="linenos">4890</span></a> <span class="p">)</span>
+</span><span id="values-4891"><a href="#values-4891"><span class="linenos">4891</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
+</span><span id="values-4892"><a href="#values-4892"><span class="linenos">4892</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="values-4893"><a href="#values-4893"><span class="linenos">4893</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span>
+</span><span id="values-4894"><a href="#values-4894"><span class="linenos">4894</span></a> <span class="p">)</span>
</span></pre></div>
@@ -44651,28 +45551,28 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#var"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="var-4807"><a href="#var-4807"><span class="linenos">4807</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-4808"><a href="#var-4808"><span class="linenos">4808</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
-</span><span id="var-4809"><a href="#var-4809"><span class="linenos">4809</span></a>
-</span><span id="var-4810"><a href="#var-4810"><span class="linenos">4810</span></a><span class="sd"> Example:</span>
-</span><span id="var-4811"><a href="#var-4811"><span class="linenos">4811</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
-</span><span id="var-4812"><a href="#var-4812"><span class="linenos">4812</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="var-4813"><a href="#var-4813"><span class="linenos">4813</span></a>
-</span><span id="var-4814"><a href="#var-4814"><span class="linenos">4814</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
-</span><span id="var-4815"><a href="#var-4815"><span class="linenos">4815</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="var-4816"><a href="#var-4816"><span class="linenos">4816</span></a>
-</span><span id="var-4817"><a href="#var-4817"><span class="linenos">4817</span></a><span class="sd"> Args:</span>
-</span><span id="var-4818"><a href="#var-4818"><span class="linenos">4818</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-4819"><a href="#var-4819"><span class="linenos">4819</span></a>
-</span><span id="var-4820"><a href="#var-4820"><span class="linenos">4820</span></a><span class="sd"> Returns:</span>
-</span><span id="var-4821"><a href="#var-4821"><span class="linenos">4821</span></a><span class="sd"> The new variable node.</span>
-</span><span id="var-4822"><a href="#var-4822"><span class="linenos">4822</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="var-4823"><a href="#var-4823"><span class="linenos">4823</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-4824"><a href="#var-4824"><span class="linenos">4824</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-4825"><a href="#var-4825"><span class="linenos">4825</span></a>
-</span><span id="var-4826"><a href="#var-4826"><span class="linenos">4826</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-4827"><a href="#var-4827"><span class="linenos">4827</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-4828"><a href="#var-4828"><span class="linenos">4828</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-4897"><a href="#var-4897"><span class="linenos">4897</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-4898"><a href="#var-4898"><span class="linenos">4898</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
+</span><span id="var-4899"><a href="#var-4899"><span class="linenos">4899</span></a>
+</span><span id="var-4900"><a href="#var-4900"><span class="linenos">4900</span></a><span class="sd"> Example:</span>
+</span><span id="var-4901"><a href="#var-4901"><span class="linenos">4901</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
+</span><span id="var-4902"><a href="#var-4902"><span class="linenos">4902</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="var-4903"><a href="#var-4903"><span class="linenos">4903</span></a>
+</span><span id="var-4904"><a href="#var-4904"><span class="linenos">4904</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
+</span><span id="var-4905"><a href="#var-4905"><span class="linenos">4905</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="var-4906"><a href="#var-4906"><span class="linenos">4906</span></a>
+</span><span id="var-4907"><a href="#var-4907"><span class="linenos">4907</span></a><span class="sd"> Args:</span>
+</span><span id="var-4908"><a href="#var-4908"><span class="linenos">4908</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-4909"><a href="#var-4909"><span class="linenos">4909</span></a>
+</span><span id="var-4910"><a href="#var-4910"><span class="linenos">4910</span></a><span class="sd"> Returns:</span>
+</span><span id="var-4911"><a href="#var-4911"><span class="linenos">4911</span></a><span class="sd"> The new variable node.</span>
+</span><span id="var-4912"><a href="#var-4912"><span class="linenos">4912</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="var-4913"><a href="#var-4913"><span class="linenos">4913</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-4914"><a href="#var-4914"><span class="linenos">4914</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-4915"><a href="#var-4915"><span class="linenos">4915</span></a>
+</span><span id="var-4916"><a href="#var-4916"><span class="linenos">4916</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-4917"><a href="#var-4917"><span class="linenos">4917</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-4918"><a href="#var-4918"><span class="linenos">4918</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>
@@ -44720,24 +45620,24 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#rename_table"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="rename_table-4831"><a href="#rename_table-4831"><span class="linenos">4831</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">new_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
-</span><span id="rename_table-4832"><a href="#rename_table-4832"><span class="linenos">4832</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
-</span><span id="rename_table-4833"><a href="#rename_table-4833"><span class="linenos">4833</span></a>
-</span><span id="rename_table-4834"><a href="#rename_table-4834"><span class="linenos">4834</span></a><span class="sd"> Args:</span>
-</span><span id="rename_table-4835"><a href="#rename_table-4835"><span class="linenos">4835</span></a><span class="sd"> old_name: The old name of the table</span>
-</span><span id="rename_table-4836"><a href="#rename_table-4836"><span class="linenos">4836</span></a><span class="sd"> new_name: The new name of the table</span>
-</span><span id="rename_table-4837"><a href="#rename_table-4837"><span class="linenos">4837</span></a>
-</span><span id="rename_table-4838"><a href="#rename_table-4838"><span class="linenos">4838</span></a><span class="sd"> Returns:</span>
-</span><span id="rename_table-4839"><a href="#rename_table-4839"><span class="linenos">4839</span></a><span class="sd"> Alter table expression</span>
-</span><span id="rename_table-4840"><a href="#rename_table-4840"><span class="linenos">4840</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="rename_table-4841"><a href="#rename_table-4841"><span class="linenos">4841</span></a> <span class="n">old_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">)</span>
-</span><span id="rename_table-4842"><a href="#rename_table-4842"><span class="linenos">4842</span></a> <span class="n">new_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
-</span><span id="rename_table-4843"><a href="#rename_table-4843"><span class="linenos">4843</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="rename_table-4844"><a href="#rename_table-4844"><span class="linenos">4844</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-4845"><a href="#rename_table-4845"><span class="linenos">4845</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="rename_table-4846"><a href="#rename_table-4846"><span class="linenos">4846</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-4847"><a href="#rename_table-4847"><span class="linenos">4847</span></a> <span class="p">],</span>
-</span><span id="rename_table-4848"><a href="#rename_table-4848"><span class="linenos">4848</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="rename_table-4921"><a href="#rename_table-4921"><span class="linenos">4921</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">new_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
+</span><span id="rename_table-4922"><a href="#rename_table-4922"><span class="linenos">4922</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="rename_table-4923"><a href="#rename_table-4923"><span class="linenos">4923</span></a>
+</span><span id="rename_table-4924"><a href="#rename_table-4924"><span class="linenos">4924</span></a><span class="sd"> Args:</span>
+</span><span id="rename_table-4925"><a href="#rename_table-4925"><span class="linenos">4925</span></a><span class="sd"> old_name: The old name of the table</span>
+</span><span id="rename_table-4926"><a href="#rename_table-4926"><span class="linenos">4926</span></a><span class="sd"> new_name: The new name of the table</span>
+</span><span id="rename_table-4927"><a href="#rename_table-4927"><span class="linenos">4927</span></a>
+</span><span id="rename_table-4928"><a href="#rename_table-4928"><span class="linenos">4928</span></a><span class="sd"> Returns:</span>
+</span><span id="rename_table-4929"><a href="#rename_table-4929"><span class="linenos">4929</span></a><span class="sd"> Alter table expression</span>
+</span><span id="rename_table-4930"><a href="#rename_table-4930"><span class="linenos">4930</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="rename_table-4931"><a href="#rename_table-4931"><span class="linenos">4931</span></a> <span class="n">old_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">)</span>
+</span><span id="rename_table-4932"><a href="#rename_table-4932"><span class="linenos">4932</span></a> <span class="n">new_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
+</span><span id="rename_table-4933"><a href="#rename_table-4933"><span class="linenos">4933</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="rename_table-4934"><a href="#rename_table-4934"><span class="linenos">4934</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-4935"><a href="#rename_table-4935"><span class="linenos">4935</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="rename_table-4936"><a href="#rename_table-4936"><span class="linenos">4936</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-4937"><a href="#rename_table-4937"><span class="linenos">4937</span></a> <span class="p">],</span>
+</span><span id="rename_table-4938"><a href="#rename_table-4938"><span class="linenos">4938</span></a> <span class="p">)</span>
</span></pre></div>
@@ -44770,47 +45670,47 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#convert"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="convert-4851"><a href="#convert-4851"><span class="linenos">4851</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="convert-4852"><a href="#convert-4852"><span class="linenos">4852</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-4853"><a href="#convert-4853"><span class="linenos">4853</span></a>
-</span><span id="convert-4854"><a href="#convert-4854"><span class="linenos">4854</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
-</span><span id="convert-4855"><a href="#convert-4855"><span class="linenos">4855</span></a>
-</span><span id="convert-4856"><a href="#convert-4856"><span class="linenos">4856</span></a><span class="sd"> Args:</span>
-</span><span id="convert-4857"><a href="#convert-4857"><span class="linenos">4857</span></a><span class="sd"> value (Any): a python object</span>
-</span><span id="convert-4858"><a href="#convert-4858"><span class="linenos">4858</span></a>
-</span><span id="convert-4859"><a href="#convert-4859"><span class="linenos">4859</span></a><span class="sd"> Returns:</span>
-</span><span id="convert-4860"><a href="#convert-4860"><span class="linenos">4860</span></a><span class="sd"> Expression: the equivalent expression object</span>
-</span><span id="convert-4861"><a href="#convert-4861"><span class="linenos">4861</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="convert-4862"><a href="#convert-4862"><span class="linenos">4862</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-4863"><a href="#convert-4863"><span class="linenos">4863</span></a> <span class="k">return</span> <span class="n">value</span>
-</span><span id="convert-4864"><a href="#convert-4864"><span class="linenos">4864</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="convert-4865"><a href="#convert-4865"><span class="linenos">4865</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="convert-4866"><a href="#convert-4866"><span class="linenos">4866</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-4867"><a href="#convert-4867"><span class="linenos">4867</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-4868"><a href="#convert-4868"><span class="linenos">4868</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-4869"><a href="#convert-4869"><span class="linenos">4869</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-4870"><a href="#convert-4870"><span class="linenos">4870</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">):</span>
-</span><span id="convert-4871"><a href="#convert-4871"><span class="linenos">4871</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="convert-4872"><a href="#convert-4872"><span class="linenos">4872</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-4873"><a href="#convert-4873"><span class="linenos">4873</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-4874"><a href="#convert-4874"><span class="linenos">4874</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-4875"><a href="#convert-4875"><span class="linenos">4875</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="convert-4876"><a href="#convert-4876"><span class="linenos">4876</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-4877"><a href="#convert-4877"><span class="linenos">4877</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="convert-4878"><a href="#convert-4878"><span class="linenos">4878</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-4879"><a href="#convert-4879"><span class="linenos">4879</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
-</span><span id="convert-4880"><a href="#convert-4880"><span class="linenos">4880</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">],</span>
-</span><span id="convert-4881"><a href="#convert-4881"><span class="linenos">4881</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()],</span>
-</span><span id="convert-4882"><a href="#convert-4882"><span class="linenos">4882</span></a> <span class="p">)</span>
-</span><span id="convert-4883"><a href="#convert-4883"><span class="linenos">4883</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-4884"><a href="#convert-4884"><span class="linenos">4884</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-4885"><a href="#convert-4885"><span class="linenos">4885</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-4886"><a href="#convert-4886"><span class="linenos">4886</span></a> <span class="p">)</span>
-</span><span id="convert-4887"><a href="#convert-4887"><span class="linenos">4887</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-4888"><a href="#convert-4888"><span class="linenos">4888</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-4889"><a href="#convert-4889"><span class="linenos">4889</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-4890"><a href="#convert-4890"><span class="linenos">4890</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-4891"><a href="#convert-4891"><span class="linenos">4891</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-4941"><a href="#convert-4941"><span class="linenos">4941</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="convert-4942"><a href="#convert-4942"><span class="linenos">4942</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-4943"><a href="#convert-4943"><span class="linenos">4943</span></a>
+</span><span id="convert-4944"><a href="#convert-4944"><span class="linenos">4944</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
+</span><span id="convert-4945"><a href="#convert-4945"><span class="linenos">4945</span></a>
+</span><span id="convert-4946"><a href="#convert-4946"><span class="linenos">4946</span></a><span class="sd"> Args:</span>
+</span><span id="convert-4947"><a href="#convert-4947"><span class="linenos">4947</span></a><span class="sd"> value (Any): a python object</span>
+</span><span id="convert-4948"><a href="#convert-4948"><span class="linenos">4948</span></a>
+</span><span id="convert-4949"><a href="#convert-4949"><span class="linenos">4949</span></a><span class="sd"> Returns:</span>
+</span><span id="convert-4950"><a href="#convert-4950"><span class="linenos">4950</span></a><span class="sd"> Expression: the equivalent expression object</span>
+</span><span id="convert-4951"><a href="#convert-4951"><span class="linenos">4951</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="convert-4952"><a href="#convert-4952"><span class="linenos">4952</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-4953"><a href="#convert-4953"><span class="linenos">4953</span></a> <span class="k">return</span> <span class="n">value</span>
+</span><span id="convert-4954"><a href="#convert-4954"><span class="linenos">4954</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="convert-4955"><a href="#convert-4955"><span class="linenos">4955</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="convert-4956"><a href="#convert-4956"><span class="linenos">4956</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-4957"><a href="#convert-4957"><span class="linenos">4957</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-4958"><a href="#convert-4958"><span class="linenos">4958</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-4959"><a href="#convert-4959"><span class="linenos">4959</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-4960"><a href="#convert-4960"><span class="linenos">4960</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">):</span>
+</span><span id="convert-4961"><a href="#convert-4961"><span class="linenos">4961</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="convert-4962"><a href="#convert-4962"><span class="linenos">4962</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-4963"><a href="#convert-4963"><span class="linenos">4963</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-4964"><a href="#convert-4964"><span class="linenos">4964</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-4965"><a href="#convert-4965"><span class="linenos">4965</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="convert-4966"><a href="#convert-4966"><span class="linenos">4966</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-4967"><a href="#convert-4967"><span class="linenos">4967</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="convert-4968"><a href="#convert-4968"><span class="linenos">4968</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-4969"><a href="#convert-4969"><span class="linenos">4969</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
+</span><span id="convert-4970"><a href="#convert-4970"><span class="linenos">4970</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">],</span>
+</span><span id="convert-4971"><a href="#convert-4971"><span class="linenos">4971</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()],</span>
+</span><span id="convert-4972"><a href="#convert-4972"><span class="linenos">4972</span></a> <span class="p">)</span>
+</span><span id="convert-4973"><a href="#convert-4973"><span class="linenos">4973</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-4974"><a href="#convert-4974"><span class="linenos">4974</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-4975"><a href="#convert-4975"><span class="linenos">4975</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-4976"><a href="#convert-4976"><span class="linenos">4976</span></a> <span class="p">)</span>
+</span><span id="convert-4977"><a href="#convert-4977"><span class="linenos">4977</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-4978"><a href="#convert-4978"><span class="linenos">4978</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-4979"><a href="#convert-4979"><span class="linenos">4979</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-4980"><a href="#convert-4980"><span class="linenos">4980</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-4981"><a href="#convert-4981"><span class="linenos">4981</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>
@@ -44844,26 +45744,26 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#replace_children"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_children-4894"><a href="#replace_children-4894"><span class="linenos">4894</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span 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-4895"><a href="#replace_children-4895"><span class="linenos">4895</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="replace_children-4896"><a href="#replace_children-4896"><span class="linenos">4896</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-4897"><a href="#replace_children-4897"><span class="linenos">4897</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_children-4898"><a href="#replace_children-4898"><span class="linenos">4898</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="replace_children-4899"><a href="#replace_children-4899"><span class="linenos">4899</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-4900"><a href="#replace_children-4900"><span class="linenos">4900</span></a>
-</span><span id="replace_children-4901"><a href="#replace_children-4901"><span class="linenos">4901</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-4902"><a href="#replace_children-4902"><span class="linenos">4902</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="replace_children-4903"><a href="#replace_children-4903"><span class="linenos">4903</span></a>
-</span><span id="replace_children-4904"><a href="#replace_children-4904"><span class="linenos">4904</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-4905"><a href="#replace_children-4905"><span class="linenos">4905</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-4906"><a href="#replace_children-4906"><span class="linenos">4906</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-4907"><a href="#replace_children-4907"><span class="linenos">4907</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-4908"><a href="#replace_children-4908"><span class="linenos">4908</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">expression</span>
-</span><span id="replace_children-4909"><a href="#replace_children-4909"><span class="linenos">4909</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">k</span>
-</span><span id="replace_children-4910"><a href="#replace_children-4910"><span class="linenos">4910</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="replace_children-4911"><a href="#replace_children-4911"><span class="linenos">4911</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-4912"><a href="#replace_children-4912"><span class="linenos">4912</span></a>
-</span><span id="replace_children-4913"><a href="#replace_children-4913"><span class="linenos">4913</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_child_nodes</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">new_child_nodes</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="replace_children-4984"><a href="#replace_children-4984"><span class="linenos">4984</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span 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-4985"><a href="#replace_children-4985"><span class="linenos">4985</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="replace_children-4986"><a href="#replace_children-4986"><span class="linenos">4986</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-4987"><a href="#replace_children-4987"><span class="linenos">4987</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_children-4988"><a href="#replace_children-4988"><span class="linenos">4988</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="replace_children-4989"><a href="#replace_children-4989"><span class="linenos">4989</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-4990"><a href="#replace_children-4990"><span class="linenos">4990</span></a>
+</span><span id="replace_children-4991"><a href="#replace_children-4991"><span class="linenos">4991</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-4992"><a href="#replace_children-4992"><span class="linenos">4992</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="replace_children-4993"><a href="#replace_children-4993"><span class="linenos">4993</span></a>
+</span><span id="replace_children-4994"><a href="#replace_children-4994"><span class="linenos">4994</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-4995"><a href="#replace_children-4995"><span class="linenos">4995</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-4996"><a href="#replace_children-4996"><span class="linenos">4996</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-4997"><a href="#replace_children-4997"><span class="linenos">4997</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-4998"><a href="#replace_children-4998"><span class="linenos">4998</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">expression</span>
+</span><span id="replace_children-4999"><a href="#replace_children-4999"><span class="linenos">4999</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">k</span>
+</span><span id="replace_children-5000"><a href="#replace_children-5000"><span class="linenos">5000</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="replace_children-5001"><a href="#replace_children-5001"><span class="linenos">5001</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-5002"><a href="#replace_children-5002"><span class="linenos">5002</span></a>
+</span><span id="replace_children-5003"><a href="#replace_children-5003"><span class="linenos">5003</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_child_nodes</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">new_child_nodes</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
</span></pre></div>
@@ -44883,22 +45783,22 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#column_table_names"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-4916"><a href="#column_table_names-4916"><span class="linenos">4916</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span>
-</span><span id="column_table_names-4917"><a href="#column_table_names-4917"><span class="linenos">4917</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="column_table_names-4918"><a href="#column_table_names-4918"><span class="linenos">4918</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
-</span><span id="column_table_names-4919"><a href="#column_table_names-4919"><span class="linenos">4919</span></a>
-</span><span id="column_table_names-4920"><a href="#column_table_names-4920"><span class="linenos">4920</span></a><span class="sd"> Example:</span>
-</span><span id="column_table_names-4921"><a href="#column_table_names-4921"><span class="linenos">4921</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="column_table_names-4922"><a href="#column_table_names-4922"><span class="linenos">4922</span></a><span class="sd"> &gt;&gt;&gt; column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;))</span>
-</span><span id="column_table_names-4923"><a href="#column_table_names-4923"><span class="linenos">4923</span></a><span class="sd"> [&#39;c&#39;, &#39;a&#39;]</span>
-</span><span id="column_table_names-4924"><a href="#column_table_names-4924"><span class="linenos">4924</span></a>
-</span><span id="column_table_names-4925"><a href="#column_table_names-4925"><span class="linenos">4925</span></a><span class="sd"> Args:</span>
-</span><span id="column_table_names-4926"><a href="#column_table_names-4926"><span class="linenos">4926</span></a><span class="sd"> expression (sqlglot.Expression): expression to find table names</span>
-</span><span id="column_table_names-4927"><a href="#column_table_names-4927"><span class="linenos">4927</span></a>
-</span><span id="column_table_names-4928"><a href="#column_table_names-4928"><span class="linenos">4928</span></a><span class="sd"> Returns:</span>
-</span><span id="column_table_names-4929"><a href="#column_table_names-4929"><span class="linenos">4929</span></a><span class="sd"> list: A list of unique names</span>
-</span><span id="column_table_names-4930"><a href="#column_table_names-4930"><span class="linenos">4930</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="column_table_names-4931"><a href="#column_table_names-4931"><span class="linenos">4931</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">)))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-5006"><a href="#column_table_names-5006"><span class="linenos">5006</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span>
+</span><span id="column_table_names-5007"><a href="#column_table_names-5007"><span class="linenos">5007</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="column_table_names-5008"><a href="#column_table_names-5008"><span class="linenos">5008</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
+</span><span id="column_table_names-5009"><a href="#column_table_names-5009"><span class="linenos">5009</span></a>
+</span><span id="column_table_names-5010"><a href="#column_table_names-5010"><span class="linenos">5010</span></a><span class="sd"> Example:</span>
+</span><span id="column_table_names-5011"><a href="#column_table_names-5011"><span class="linenos">5011</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="column_table_names-5012"><a href="#column_table_names-5012"><span class="linenos">5012</span></a><span class="sd"> &gt;&gt;&gt; column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;))</span>
+</span><span id="column_table_names-5013"><a href="#column_table_names-5013"><span class="linenos">5013</span></a><span class="sd"> [&#39;c&#39;, &#39;a&#39;]</span>
+</span><span id="column_table_names-5014"><a href="#column_table_names-5014"><span class="linenos">5014</span></a>
+</span><span id="column_table_names-5015"><a href="#column_table_names-5015"><span class="linenos">5015</span></a><span class="sd"> Args:</span>
+</span><span id="column_table_names-5016"><a href="#column_table_names-5016"><span class="linenos">5016</span></a><span class="sd"> expression (sqlglot.Expression): expression to find table names</span>
+</span><span id="column_table_names-5017"><a href="#column_table_names-5017"><span class="linenos">5017</span></a>
+</span><span id="column_table_names-5018"><a href="#column_table_names-5018"><span class="linenos">5018</span></a><span class="sd"> Returns:</span>
+</span><span id="column_table_names-5019"><a href="#column_table_names-5019"><span class="linenos">5019</span></a><span class="sd"> list: A list of unique names</span>
+</span><span id="column_table_names-5020"><a href="#column_table_names-5020"><span class="linenos">5020</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="column_table_names-5021"><a href="#column_table_names-5021"><span class="linenos">5021</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">)))</span>
</span></pre></div>
@@ -44941,35 +45841,35 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#table_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="table_name-4934"><a href="#table_name-4934"><span class="linenos">4934</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="table_name-4935"><a href="#table_name-4935"><span class="linenos">4935</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-4936"><a href="#table_name-4936"><span class="linenos">4936</span></a>
-</span><span id="table_name-4937"><a href="#table_name-4937"><span class="linenos">4937</span></a><span class="sd"> Args:</span>
-</span><span id="table_name-4938"><a href="#table_name-4938"><span class="linenos">4938</span></a><span class="sd"> table (exp.Table | str): table expression node or string.</span>
-</span><span id="table_name-4939"><a href="#table_name-4939"><span class="linenos">4939</span></a>
-</span><span id="table_name-4940"><a href="#table_name-4940"><span class="linenos">4940</span></a><span class="sd"> Examples:</span>
-</span><span id="table_name-4941"><a href="#table_name-4941"><span class="linenos">4941</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="table_name-4942"><a href="#table_name-4942"><span class="linenos">4942</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-4943"><a href="#table_name-4943"><span class="linenos">4943</span></a><span class="sd"> &#39;a.b.c&#39;</span>
-</span><span id="table_name-4944"><a href="#table_name-4944"><span class="linenos">4944</span></a>
-</span><span id="table_name-4945"><a href="#table_name-4945"><span class="linenos">4945</span></a><span class="sd"> Returns:</span>
-</span><span id="table_name-4946"><a href="#table_name-4946"><span class="linenos">4946</span></a><span class="sd"> The table name.</span>
-</span><span id="table_name-4947"><a href="#table_name-4947"><span class="linenos">4947</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="table_name-4948"><a href="#table_name-4948"><span class="linenos">4948</span></a>
-</span><span id="table_name-4949"><a href="#table_name-4949"><span class="linenos">4949</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
-</span><span id="table_name-4950"><a href="#table_name-4950"><span class="linenos">4950</span></a>
-</span><span id="table_name-4951"><a href="#table_name-4951"><span class="linenos">4951</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-4952"><a href="#table_name-4952"><span class="linenos">4952</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-4953"><a href="#table_name-4953"><span class="linenos">4953</span></a>
-</span><span id="table_name-4954"><a href="#table_name-4954"><span class="linenos">4954</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-4955"><a href="#table_name-4955"><span class="linenos">4955</span></a> <span class="n">part</span>
-</span><span id="table_name-4956"><a href="#table_name-4956"><span class="linenos">4956</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span>
-</span><span id="table_name-4957"><a href="#table_name-4957"><span class="linenos">4957</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">),</span>
-</span><span id="table_name-4958"><a href="#table_name-4958"><span class="linenos">4958</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">),</span>
-</span><span id="table_name-4959"><a href="#table_name-4959"><span class="linenos">4959</span></a> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
-</span><span id="table_name-4960"><a href="#table_name-4960"><span class="linenos">4960</span></a> <span class="p">)</span>
-</span><span id="table_name-4961"><a href="#table_name-4961"><span class="linenos">4961</span></a> <span class="k">if</span> <span class="n">part</span>
-</span><span id="table_name-4962"><a href="#table_name-4962"><span class="linenos">4962</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="table_name-5024"><a href="#table_name-5024"><span class="linenos">5024</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="table_name-5025"><a href="#table_name-5025"><span class="linenos">5025</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-5026"><a href="#table_name-5026"><span class="linenos">5026</span></a>
+</span><span id="table_name-5027"><a href="#table_name-5027"><span class="linenos">5027</span></a><span class="sd"> Args:</span>
+</span><span id="table_name-5028"><a href="#table_name-5028"><span class="linenos">5028</span></a><span class="sd"> table (exp.Table | str): table expression node or string.</span>
+</span><span id="table_name-5029"><a href="#table_name-5029"><span class="linenos">5029</span></a>
+</span><span id="table_name-5030"><a href="#table_name-5030"><span class="linenos">5030</span></a><span class="sd"> Examples:</span>
+</span><span id="table_name-5031"><a href="#table_name-5031"><span class="linenos">5031</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="table_name-5032"><a href="#table_name-5032"><span class="linenos">5032</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-5033"><a href="#table_name-5033"><span class="linenos">5033</span></a><span class="sd"> &#39;a.b.c&#39;</span>
+</span><span id="table_name-5034"><a href="#table_name-5034"><span class="linenos">5034</span></a>
+</span><span id="table_name-5035"><a href="#table_name-5035"><span class="linenos">5035</span></a><span class="sd"> Returns:</span>
+</span><span id="table_name-5036"><a href="#table_name-5036"><span class="linenos">5036</span></a><span class="sd"> The table name.</span>
+</span><span id="table_name-5037"><a href="#table_name-5037"><span class="linenos">5037</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="table_name-5038"><a href="#table_name-5038"><span class="linenos">5038</span></a>
+</span><span id="table_name-5039"><a href="#table_name-5039"><span class="linenos">5039</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
+</span><span id="table_name-5040"><a href="#table_name-5040"><span class="linenos">5040</span></a>
+</span><span id="table_name-5041"><a href="#table_name-5041"><span class="linenos">5041</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-5042"><a href="#table_name-5042"><span class="linenos">5042</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-5043"><a href="#table_name-5043"><span class="linenos">5043</span></a>
+</span><span id="table_name-5044"><a href="#table_name-5044"><span class="linenos">5044</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-5045"><a href="#table_name-5045"><span class="linenos">5045</span></a> <span class="n">part</span>
+</span><span id="table_name-5046"><a href="#table_name-5046"><span class="linenos">5046</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span>
+</span><span id="table_name-5047"><a href="#table_name-5047"><span class="linenos">5047</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">),</span>
+</span><span id="table_name-5048"><a href="#table_name-5048"><span class="linenos">5048</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">),</span>
+</span><span id="table_name-5049"><a href="#table_name-5049"><span class="linenos">5049</span></a> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
+</span><span id="table_name-5050"><a href="#table_name-5050"><span class="linenos">5050</span></a> <span class="p">)</span>
+</span><span id="table_name-5051"><a href="#table_name-5051"><span class="linenos">5051</span></a> <span class="k">if</span> <span class="n">part</span>
+</span><span id="table_name-5052"><a href="#table_name-5052"><span class="linenos">5052</span></a> <span class="p">)</span>
</span></pre></div>
@@ -45012,33 +45912,33 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#replace_tables"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-4965"><a href="#replace_tables-4965"><span class="linenos">4965</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">mapping</span><span class="p">):</span>
-</span><span id="replace_tables-4966"><a href="#replace_tables-4966"><span class="linenos">4966</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-4967"><a href="#replace_tables-4967"><span class="linenos">4967</span></a>
-</span><span id="replace_tables-4968"><a href="#replace_tables-4968"><span class="linenos">4968</span></a><span class="sd"> Args:</span>
-</span><span id="replace_tables-4969"><a href="#replace_tables-4969"><span class="linenos">4969</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
-</span><span id="replace_tables-4970"><a href="#replace_tables-4970"><span class="linenos">4970</span></a><span class="sd"> mapping (Dict[str, str]): mapping of table names.</span>
-</span><span id="replace_tables-4971"><a href="#replace_tables-4971"><span class="linenos">4971</span></a>
-</span><span id="replace_tables-4972"><a href="#replace_tables-4972"><span class="linenos">4972</span></a><span class="sd"> Examples:</span>
-</span><span id="replace_tables-4973"><a href="#replace_tables-4973"><span class="linenos">4973</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="replace_tables-4974"><a href="#replace_tables-4974"><span class="linenos">4974</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-4975"><a href="#replace_tables-4975"><span class="linenos">4975</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
-</span><span id="replace_tables-4976"><a href="#replace_tables-4976"><span class="linenos">4976</span></a>
-</span><span id="replace_tables-4977"><a href="#replace_tables-4977"><span class="linenos">4977</span></a><span class="sd"> Returns:</span>
-</span><span id="replace_tables-4978"><a href="#replace_tables-4978"><span class="linenos">4978</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="replace_tables-4979"><a href="#replace_tables-4979"><span class="linenos">4979</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_tables-4980"><a href="#replace_tables-4980"><span class="linenos">4980</span></a>
-</span><span id="replace_tables-4981"><a href="#replace_tables-4981"><span class="linenos">4981</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
-</span><span id="replace_tables-4982"><a href="#replace_tables-4982"><span class="linenos">4982</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-4983"><a href="#replace_tables-4983"><span class="linenos">4983</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span>
-</span><span id="replace_tables-4984"><a href="#replace_tables-4984"><span class="linenos">4984</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="replace_tables-4985"><a href="#replace_tables-4985"><span class="linenos">4985</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
-</span><span id="replace_tables-4986"><a href="#replace_tables-4986"><span class="linenos">4986</span></a> <span class="n">new_name</span><span class="p">,</span>
-</span><span id="replace_tables-4987"><a href="#replace_tables-4987"><span class="linenos">4987</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">)},</span>
-</span><span id="replace_tables-4988"><a href="#replace_tables-4988"><span class="linenos">4988</span></a> <span class="p">)</span>
-</span><span id="replace_tables-4989"><a href="#replace_tables-4989"><span class="linenos">4989</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="replace_tables-4990"><a href="#replace_tables-4990"><span class="linenos">4990</span></a>
-</span><span id="replace_tables-4991"><a href="#replace_tables-4991"><span class="linenos">4991</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-5055"><a href="#replace_tables-5055"><span class="linenos">5055</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">mapping</span><span class="p">):</span>
+</span><span id="replace_tables-5056"><a href="#replace_tables-5056"><span class="linenos">5056</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-5057"><a href="#replace_tables-5057"><span class="linenos">5057</span></a>
+</span><span id="replace_tables-5058"><a href="#replace_tables-5058"><span class="linenos">5058</span></a><span class="sd"> Args:</span>
+</span><span id="replace_tables-5059"><a href="#replace_tables-5059"><span class="linenos">5059</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
+</span><span id="replace_tables-5060"><a href="#replace_tables-5060"><span class="linenos">5060</span></a><span class="sd"> mapping (Dict[str, str]): mapping of table names.</span>
+</span><span id="replace_tables-5061"><a href="#replace_tables-5061"><span class="linenos">5061</span></a>
+</span><span id="replace_tables-5062"><a href="#replace_tables-5062"><span class="linenos">5062</span></a><span class="sd"> Examples:</span>
+</span><span id="replace_tables-5063"><a href="#replace_tables-5063"><span class="linenos">5063</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="replace_tables-5064"><a href="#replace_tables-5064"><span class="linenos">5064</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-5065"><a href="#replace_tables-5065"><span class="linenos">5065</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
+</span><span id="replace_tables-5066"><a href="#replace_tables-5066"><span class="linenos">5066</span></a>
+</span><span id="replace_tables-5067"><a href="#replace_tables-5067"><span class="linenos">5067</span></a><span class="sd"> Returns:</span>
+</span><span id="replace_tables-5068"><a href="#replace_tables-5068"><span class="linenos">5068</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="replace_tables-5069"><a href="#replace_tables-5069"><span class="linenos">5069</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_tables-5070"><a href="#replace_tables-5070"><span class="linenos">5070</span></a>
+</span><span id="replace_tables-5071"><a href="#replace_tables-5071"><span class="linenos">5071</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+</span><span id="replace_tables-5072"><a href="#replace_tables-5072"><span class="linenos">5072</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-5073"><a href="#replace_tables-5073"><span class="linenos">5073</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span>
+</span><span id="replace_tables-5074"><a href="#replace_tables-5074"><span class="linenos">5074</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="replace_tables-5075"><a href="#replace_tables-5075"><span class="linenos">5075</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
+</span><span id="replace_tables-5076"><a href="#replace_tables-5076"><span class="linenos">5076</span></a> <span class="n">new_name</span><span class="p">,</span>
+</span><span id="replace_tables-5077"><a href="#replace_tables-5077"><span class="linenos">5077</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">)},</span>
+</span><span id="replace_tables-5078"><a href="#replace_tables-5078"><span class="linenos">5078</span></a> <span class="p">)</span>
+</span><span id="replace_tables-5079"><a href="#replace_tables-5079"><span class="linenos">5079</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="replace_tables-5080"><a href="#replace_tables-5080"><span class="linenos">5080</span></a>
+</span><span id="replace_tables-5081"><a href="#replace_tables-5081"><span class="linenos">5081</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">)</span>
</span></pre></div>
@@ -45082,40 +45982,40 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#replace_placeholders"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_placeholders-4994"><a href="#replace_placeholders-4994"><span class="linenos">4994</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="replace_placeholders-4995"><a href="#replace_placeholders-4995"><span class="linenos">4995</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
-</span><span id="replace_placeholders-4996"><a href="#replace_placeholders-4996"><span class="linenos">4996</span></a>
-</span><span id="replace_placeholders-4997"><a href="#replace_placeholders-4997"><span class="linenos">4997</span></a><span class="sd"> Args:</span>
-</span><span id="replace_placeholders-4998"><a href="#replace_placeholders-4998"><span class="linenos">4998</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
-</span><span id="replace_placeholders-4999"><a href="#replace_placeholders-4999"><span class="linenos">4999</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
-</span><span id="replace_placeholders-5000"><a href="#replace_placeholders-5000"><span class="linenos">5000</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
-</span><span id="replace_placeholders-5001"><a href="#replace_placeholders-5001"><span class="linenos">5001</span></a>
-</span><span id="replace_placeholders-5002"><a href="#replace_placeholders-5002"><span class="linenos">5002</span></a><span class="sd"> Examples:</span>
-</span><span id="replace_placeholders-5003"><a href="#replace_placeholders-5003"><span class="linenos">5003</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="replace_placeholders-5004"><a href="#replace_placeholders-5004"><span class="linenos">5004</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
-</span><span id="replace_placeholders-5005"><a href="#replace_placeholders-5005"><span class="linenos">5005</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
-</span><span id="replace_placeholders-5006"><a href="#replace_placeholders-5006"><span class="linenos">5006</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-5007"><a href="#replace_placeholders-5007"><span class="linenos">5007</span></a><span class="sd"> ... ).sql()</span>
-</span><span id="replace_placeholders-5008"><a href="#replace_placeholders-5008"><span class="linenos">5008</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
-</span><span id="replace_placeholders-5009"><a href="#replace_placeholders-5009"><span class="linenos">5009</span></a>
-</span><span id="replace_placeholders-5010"><a href="#replace_placeholders-5010"><span class="linenos">5010</span></a><span class="sd"> Returns:</span>
-</span><span id="replace_placeholders-5011"><a href="#replace_placeholders-5011"><span class="linenos">5011</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="replace_placeholders-5012"><a href="#replace_placeholders-5012"><span class="linenos">5012</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_placeholders-5013"><a href="#replace_placeholders-5013"><span class="linenos">5013</span></a>
-</span><span id="replace_placeholders-5014"><a href="#replace_placeholders-5014"><span class="linenos">5014</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="replace_placeholders-5015"><a href="#replace_placeholders-5015"><span class="linenos">5015</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-5016"><a href="#replace_placeholders-5016"><span class="linenos">5016</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">:</span>
-</span><span id="replace_placeholders-5017"><a href="#replace_placeholders-5017"><span class="linenos">5017</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="replace_placeholders-5018"><a href="#replace_placeholders-5018"><span class="linenos">5018</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="replace_placeholders-5019"><a href="#replace_placeholders-5019"><span class="linenos">5019</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-5020"><a href="#replace_placeholders-5020"><span class="linenos">5020</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="replace_placeholders-5021"><a href="#replace_placeholders-5021"><span class="linenos">5021</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="replace_placeholders-5022"><a href="#replace_placeholders-5022"><span class="linenos">5022</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-5023"><a href="#replace_placeholders-5023"><span class="linenos">5023</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
-</span><span id="replace_placeholders-5024"><a href="#replace_placeholders-5024"><span class="linenos">5024</span></a> <span class="k">pass</span>
-</span><span id="replace_placeholders-5025"><a href="#replace_placeholders-5025"><span class="linenos">5025</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="replace_placeholders-5026"><a href="#replace_placeholders-5026"><span class="linenos">5026</span></a>
-</span><span id="replace_placeholders-5027"><a href="#replace_placeholders-5027"><span class="linenos">5027</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-5084"><a href="#replace_placeholders-5084"><span class="linenos">5084</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+</span><span id="replace_placeholders-5085"><a href="#replace_placeholders-5085"><span class="linenos">5085</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
+</span><span id="replace_placeholders-5086"><a href="#replace_placeholders-5086"><span class="linenos">5086</span></a>
+</span><span id="replace_placeholders-5087"><a href="#replace_placeholders-5087"><span class="linenos">5087</span></a><span class="sd"> Args:</span>
+</span><span id="replace_placeholders-5088"><a href="#replace_placeholders-5088"><span class="linenos">5088</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
+</span><span id="replace_placeholders-5089"><a href="#replace_placeholders-5089"><span class="linenos">5089</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
+</span><span id="replace_placeholders-5090"><a href="#replace_placeholders-5090"><span class="linenos">5090</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
+</span><span id="replace_placeholders-5091"><a href="#replace_placeholders-5091"><span class="linenos">5091</span></a>
+</span><span id="replace_placeholders-5092"><a href="#replace_placeholders-5092"><span class="linenos">5092</span></a><span class="sd"> Examples:</span>
+</span><span id="replace_placeholders-5093"><a href="#replace_placeholders-5093"><span class="linenos">5093</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="replace_placeholders-5094"><a href="#replace_placeholders-5094"><span class="linenos">5094</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
+</span><span id="replace_placeholders-5095"><a href="#replace_placeholders-5095"><span class="linenos">5095</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
+</span><span id="replace_placeholders-5096"><a href="#replace_placeholders-5096"><span class="linenos">5096</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-5097"><a href="#replace_placeholders-5097"><span class="linenos">5097</span></a><span class="sd"> ... ).sql()</span>
+</span><span id="replace_placeholders-5098"><a href="#replace_placeholders-5098"><span class="linenos">5098</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
+</span><span id="replace_placeholders-5099"><a href="#replace_placeholders-5099"><span class="linenos">5099</span></a>
+</span><span id="replace_placeholders-5100"><a href="#replace_placeholders-5100"><span class="linenos">5100</span></a><span class="sd"> Returns:</span>
+</span><span id="replace_placeholders-5101"><a href="#replace_placeholders-5101"><span class="linenos">5101</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="replace_placeholders-5102"><a href="#replace_placeholders-5102"><span class="linenos">5102</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_placeholders-5103"><a href="#replace_placeholders-5103"><span class="linenos">5103</span></a>
+</span><span id="replace_placeholders-5104"><a href="#replace_placeholders-5104"><span class="linenos">5104</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+</span><span id="replace_placeholders-5105"><a href="#replace_placeholders-5105"><span class="linenos">5105</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-5106"><a href="#replace_placeholders-5106"><span class="linenos">5106</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">:</span>
+</span><span id="replace_placeholders-5107"><a href="#replace_placeholders-5107"><span class="linenos">5107</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="replace_placeholders-5108"><a href="#replace_placeholders-5108"><span class="linenos">5108</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="replace_placeholders-5109"><a href="#replace_placeholders-5109"><span class="linenos">5109</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-5110"><a href="#replace_placeholders-5110"><span class="linenos">5110</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="replace_placeholders-5111"><a href="#replace_placeholders-5111"><span class="linenos">5111</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="replace_placeholders-5112"><a href="#replace_placeholders-5112"><span class="linenos">5112</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-5113"><a href="#replace_placeholders-5113"><span class="linenos">5113</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
+</span><span id="replace_placeholders-5114"><a href="#replace_placeholders-5114"><span class="linenos">5114</span></a> <span class="k">pass</span>
+</span><span id="replace_placeholders-5115"><a href="#replace_placeholders-5115"><span class="linenos">5115</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="replace_placeholders-5116"><a href="#replace_placeholders-5116"><span class="linenos">5116</span></a>
+</span><span id="replace_placeholders-5117"><a href="#replace_placeholders-5117"><span class="linenos">5117</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>
@@ -45157,40 +46057,45 @@ in order to help with type inference.</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">expand</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="n">sources</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Subqueryable">sqlglot.expressions.Subqueryable</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span></span><span class="return-annotation">) -> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>:</span></span>
+ <span class="name">expand</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="n">sources</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Subqueryable">sqlglot.expressions.Subqueryable</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">) -> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>:</span></span>
<label class="view-source-button" for="expand-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#expand"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="expand-5030"><a href="#expand-5030"><span class="linenos">5030</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="expand-5031"><a href="#expand-5031"><span class="linenos">5031</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-5032"><a href="#expand-5032"><span class="linenos">5032</span></a>
-</span><span id="expand-5033"><a href="#expand-5033"><span class="linenos">5033</span></a><span class="sd"> Examples:</span>
-</span><span id="expand-5034"><a href="#expand-5034"><span class="linenos">5034</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="expand-5035"><a href="#expand-5035"><span class="linenos">5035</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-5036"><a href="#expand-5036"><span class="linenos">5036</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
-</span><span id="expand-5037"><a href="#expand-5037"><span class="linenos">5037</span></a>
-</span><span id="expand-5038"><a href="#expand-5038"><span class="linenos">5038</span></a><span class="sd"> Args:</span>
-</span><span id="expand-5039"><a href="#expand-5039"><span class="linenos">5039</span></a><span class="sd"> expression: The expression to expand.</span>
-</span><span id="expand-5040"><a href="#expand-5040"><span class="linenos">5040</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
-</span><span id="expand-5041"><a href="#expand-5041"><span class="linenos">5041</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
-</span><span id="expand-5042"><a href="#expand-5042"><span class="linenos">5042</span></a>
-</span><span id="expand-5043"><a href="#expand-5043"><span class="linenos">5043</span></a><span class="sd"> Returns:</span>
-</span><span id="expand-5044"><a href="#expand-5044"><span class="linenos">5044</span></a><span class="sd"> The transformed expression.</span>
-</span><span id="expand-5045"><a href="#expand-5045"><span class="linenos">5045</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="expand-5046"><a href="#expand-5046"><span class="linenos">5046</span></a>
-</span><span id="expand-5047"><a href="#expand-5047"><span class="linenos">5047</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-5048"><a href="#expand-5048"><span class="linenos">5048</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-5049"><a href="#expand-5049"><span class="linenos">5049</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
-</span><span id="expand-5050"><a href="#expand-5050"><span class="linenos">5050</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-5051"><a href="#expand-5051"><span class="linenos">5051</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
-</span><span id="expand-5052"><a href="#expand-5052"><span class="linenos">5052</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-5053"><a href="#expand-5053"><span class="linenos">5053</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-5054"><a href="#expand-5054"><span class="linenos">5054</span></a> <span class="k">return</span> <span class="n">subquery</span>
-</span><span id="expand-5055"><a href="#expand-5055"><span class="linenos">5055</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="expand-5056"><a href="#expand-5056"><span class="linenos">5056</span></a>
-</span><span id="expand-5057"><a href="#expand-5057"><span class="linenos">5057</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-5120"><a href="#expand-5120"><span class="linenos">5120</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
+</span><span id="expand-5121"><a href="#expand-5121"><span class="linenos">5121</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="expand-5122"><a href="#expand-5122"><span class="linenos">5122</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="expand-5123"><a href="#expand-5123"><span class="linenos">5123</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-5124"><a href="#expand-5124"><span class="linenos">5124</span></a>
+</span><span id="expand-5125"><a href="#expand-5125"><span class="linenos">5125</span></a><span class="sd"> Examples:</span>
+</span><span id="expand-5126"><a href="#expand-5126"><span class="linenos">5126</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="expand-5127"><a href="#expand-5127"><span class="linenos">5127</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-5128"><a href="#expand-5128"><span class="linenos">5128</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
+</span><span id="expand-5129"><a href="#expand-5129"><span class="linenos">5129</span></a>
+</span><span id="expand-5130"><a href="#expand-5130"><span class="linenos">5130</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-5131"><a href="#expand-5131"><span class="linenos">5131</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-5132"><a href="#expand-5132"><span class="linenos">5132</span></a>
+</span><span id="expand-5133"><a href="#expand-5133"><span class="linenos">5133</span></a><span class="sd"> Args:</span>
+</span><span id="expand-5134"><a href="#expand-5134"><span class="linenos">5134</span></a><span class="sd"> expression: The expression to expand.</span>
+</span><span id="expand-5135"><a href="#expand-5135"><span class="linenos">5135</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
+</span><span id="expand-5136"><a href="#expand-5136"><span class="linenos">5136</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
+</span><span id="expand-5137"><a href="#expand-5137"><span class="linenos">5137</span></a>
+</span><span id="expand-5138"><a href="#expand-5138"><span class="linenos">5138</span></a><span class="sd"> Returns:</span>
+</span><span id="expand-5139"><a href="#expand-5139"><span class="linenos">5139</span></a><span class="sd"> The transformed expression.</span>
+</span><span id="expand-5140"><a href="#expand-5140"><span class="linenos">5140</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="expand-5141"><a href="#expand-5141"><span class="linenos">5141</span></a>
+</span><span id="expand-5142"><a href="#expand-5142"><span class="linenos">5142</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-5143"><a href="#expand-5143"><span class="linenos">5143</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-5144"><a href="#expand-5144"><span class="linenos">5144</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+</span><span id="expand-5145"><a href="#expand-5145"><span class="linenos">5145</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-5146"><a href="#expand-5146"><span class="linenos">5146</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
+</span><span id="expand-5147"><a href="#expand-5147"><span class="linenos">5147</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-5148"><a href="#expand-5148"><span class="linenos">5148</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-5149"><a href="#expand-5149"><span class="linenos">5149</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-5150"><a href="#expand-5150"><span class="linenos">5150</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="expand-5151"><a href="#expand-5151"><span class="linenos">5151</span></a>
+</span><span id="expand-5152"><a href="#expand-5152"><span class="linenos">5152</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>
@@ -45205,6 +46110,12 @@ in order to help with type inference.</li>
<span class="go">&#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
</code></pre>
</div>
+
+ <div class="pdoc-code codehilite">
+<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">expand</span><span class="p">(</span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;select * from x AS z&quot;</span><span class="p">),</span> <span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;select * from y&quot;</span><span class="p">),</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;select * from z&quot;</span><span class="p">)})</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
+<span class="go">&#39;SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */&#39;</span>
+</code></pre>
+ </div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
@@ -45235,51 +46146,51 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#func"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="func-5060"><a href="#func-5060"><span class="linenos">5060</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
-</span><span id="func-5061"><a href="#func-5061"><span class="linenos">5061</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="func-5062"><a href="#func-5062"><span class="linenos">5062</span></a><span class="sd"> Returns a Func expression.</span>
-</span><span id="func-5063"><a href="#func-5063"><span class="linenos">5063</span></a>
-</span><span id="func-5064"><a href="#func-5064"><span class="linenos">5064</span></a><span class="sd"> Examples:</span>
-</span><span id="func-5065"><a href="#func-5065"><span class="linenos">5065</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
-</span><span id="func-5066"><a href="#func-5066"><span class="linenos">5066</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
-</span><span id="func-5067"><a href="#func-5067"><span class="linenos">5067</span></a>
-</span><span id="func-5068"><a href="#func-5068"><span class="linenos">5068</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-5069"><a href="#func-5069"><span class="linenos">5069</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
-</span><span id="func-5070"><a href="#func-5070"><span class="linenos">5070</span></a>
-</span><span id="func-5071"><a href="#func-5071"><span class="linenos">5071</span></a><span class="sd"> Args:</span>
-</span><span id="func-5072"><a href="#func-5072"><span class="linenos">5072</span></a><span class="sd"> name: the name of the function to build.</span>
-</span><span id="func-5073"><a href="#func-5073"><span class="linenos">5073</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
-</span><span id="func-5074"><a href="#func-5074"><span class="linenos">5074</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="func-5075"><a href="#func-5075"><span class="linenos">5075</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="func-5076"><a href="#func-5076"><span class="linenos">5076</span></a>
-</span><span id="func-5077"><a href="#func-5077"><span class="linenos">5077</span></a><span class="sd"> Note:</span>
-</span><span id="func-5078"><a href="#func-5078"><span class="linenos">5078</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
-</span><span id="func-5079"><a href="#func-5079"><span class="linenos">5079</span></a>
-</span><span id="func-5080"><a href="#func-5080"><span class="linenos">5080</span></a><span class="sd"> Returns:</span>
-</span><span id="func-5081"><a href="#func-5081"><span class="linenos">5081</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-5082"><a href="#func-5082"><span class="linenos">5082</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
-</span><span id="func-5083"><a href="#func-5083"><span class="linenos">5083</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="func-5084"><a href="#func-5084"><span class="linenos">5084</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-5085"><a href="#func-5085"><span class="linenos">5085</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-5086"><a href="#func-5086"><span class="linenos">5086</span></a>
-</span><span id="func-5087"><a href="#func-5087"><span class="linenos">5087</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-5088"><a href="#func-5088"><span class="linenos">5088</span></a>
-</span><span id="func-5089"><a href="#func-5089"><span class="linenos">5089</span></a> <span class="n">converted</span> <span class="o">=</span> <span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
-</span><span id="func-5090"><a href="#func-5090"><span class="linenos">5090</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
-</span><span id="func-5091"><a href="#func-5091"><span class="linenos">5091</span></a>
-</span><span id="func-5092"><a href="#func-5092"><span class="linenos">5092</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span>
-</span><span id="func-5093"><a href="#func-5093"><span class="linenos">5093</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
-</span><span id="func-5094"><a href="#func-5094"><span class="linenos">5094</span></a>
-</span><span id="func-5095"><a href="#func-5095"><span class="linenos">5095</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
-</span><span id="func-5096"><a href="#func-5096"><span class="linenos">5096</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="func-5097"><a href="#func-5097"><span class="linenos">5097</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="func-5098"><a href="#func-5098"><span class="linenos">5098</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-5099"><a href="#func-5099"><span class="linenos">5099</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-5100"><a href="#func-5100"><span class="linenos">5100</span></a>
-</span><span id="func-5101"><a href="#func-5101"><span class="linenos">5101</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-5102"><a href="#func-5102"><span class="linenos">5102</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-5103"><a href="#func-5103"><span class="linenos">5103</span></a>
-</span><span id="func-5104"><a href="#func-5104"><span class="linenos">5104</span></a> <span class="k">return</span> <span class="n">function</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="func-5155"><a href="#func-5155"><span class="linenos">5155</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
+</span><span id="func-5156"><a href="#func-5156"><span class="linenos">5156</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="func-5157"><a href="#func-5157"><span class="linenos">5157</span></a><span class="sd"> Returns a Func expression.</span>
+</span><span id="func-5158"><a href="#func-5158"><span class="linenos">5158</span></a>
+</span><span id="func-5159"><a href="#func-5159"><span class="linenos">5159</span></a><span class="sd"> Examples:</span>
+</span><span id="func-5160"><a href="#func-5160"><span class="linenos">5160</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
+</span><span id="func-5161"><a href="#func-5161"><span class="linenos">5161</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
+</span><span id="func-5162"><a href="#func-5162"><span class="linenos">5162</span></a>
+</span><span id="func-5163"><a href="#func-5163"><span class="linenos">5163</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-5164"><a href="#func-5164"><span class="linenos">5164</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="func-5165"><a href="#func-5165"><span class="linenos">5165</span></a>
+</span><span id="func-5166"><a href="#func-5166"><span class="linenos">5166</span></a><span class="sd"> Args:</span>
+</span><span id="func-5167"><a href="#func-5167"><span class="linenos">5167</span></a><span class="sd"> name: the name of the function to build.</span>
+</span><span id="func-5168"><a href="#func-5168"><span class="linenos">5168</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
+</span><span id="func-5169"><a href="#func-5169"><span class="linenos">5169</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="func-5170"><a href="#func-5170"><span class="linenos">5170</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</span><span id="func-5171"><a href="#func-5171"><span class="linenos">5171</span></a>
+</span><span id="func-5172"><a href="#func-5172"><span class="linenos">5172</span></a><span class="sd"> Note:</span>
+</span><span id="func-5173"><a href="#func-5173"><span class="linenos">5173</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
+</span><span id="func-5174"><a href="#func-5174"><span class="linenos">5174</span></a>
+</span><span id="func-5175"><a href="#func-5175"><span class="linenos">5175</span></a><span class="sd"> Returns:</span>
+</span><span id="func-5176"><a href="#func-5176"><span class="linenos">5176</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-5177"><a href="#func-5177"><span class="linenos">5177</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
+</span><span id="func-5178"><a href="#func-5178"><span class="linenos">5178</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="func-5179"><a href="#func-5179"><span class="linenos">5179</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-5180"><a href="#func-5180"><span class="linenos">5180</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-5181"><a href="#func-5181"><span class="linenos">5181</span></a>
+</span><span id="func-5182"><a href="#func-5182"><span class="linenos">5182</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-5183"><a href="#func-5183"><span class="linenos">5183</span></a>
+</span><span id="func-5184"><a href="#func-5184"><span class="linenos">5184</span></a> <span class="n">converted</span> <span class="o">=</span> <span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
+</span><span id="func-5185"><a href="#func-5185"><span class="linenos">5185</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="func-5186"><a href="#func-5186"><span class="linenos">5186</span></a>
+</span><span id="func-5187"><a href="#func-5187"><span class="linenos">5187</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span>
+</span><span id="func-5188"><a href="#func-5188"><span class="linenos">5188</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
+</span><span id="func-5189"><a href="#func-5189"><span class="linenos">5189</span></a>
+</span><span id="func-5190"><a href="#func-5190"><span class="linenos">5190</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
+</span><span id="func-5191"><a href="#func-5191"><span class="linenos">5191</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="func-5192"><a href="#func-5192"><span class="linenos">5192</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="func-5193"><a href="#func-5193"><span class="linenos">5193</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-5194"><a href="#func-5194"><span class="linenos">5194</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-5195"><a href="#func-5195"><span class="linenos">5195</span></a>
+</span><span id="func-5196"><a href="#func-5196"><span class="linenos">5196</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-5197"><a href="#func-5197"><span class="linenos">5197</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-5198"><a href="#func-5198"><span class="linenos">5198</span></a>
+</span><span id="func-5199"><a href="#func-5199"><span class="linenos">5199</span></a> <span class="k">return</span> <span class="n">function</span>
</span></pre></div>
@@ -45337,11 +46248,11 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#true"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="true-5107"><a href="#true-5107"><span class="linenos">5107</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">():</span>
-</span><span id="true-5108"><a href="#true-5108"><span class="linenos">5108</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="true-5109"><a href="#true-5109"><span class="linenos">5109</span></a><span class="sd"> Returns a true Boolean expression.</span>
-</span><span id="true-5110"><a href="#true-5110"><span class="linenos">5110</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="true-5111"><a href="#true-5111"><span class="linenos">5111</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-5202"><a href="#true-5202"><span class="linenos">5202</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">():</span>
+</span><span id="true-5203"><a href="#true-5203"><span class="linenos">5203</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="true-5204"><a href="#true-5204"><span class="linenos">5204</span></a><span class="sd"> Returns a true Boolean expression.</span>
+</span><span id="true-5205"><a href="#true-5205"><span class="linenos">5205</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="true-5206"><a href="#true-5206"><span class="linenos">5206</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>
@@ -45361,11 +46272,11 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#false"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="false-5114"><a href="#false-5114"><span class="linenos">5114</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">():</span>
-</span><span id="false-5115"><a href="#false-5115"><span class="linenos">5115</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="false-5116"><a href="#false-5116"><span class="linenos">5116</span></a><span class="sd"> Returns a false Boolean expression.</span>
-</span><span id="false-5117"><a href="#false-5117"><span class="linenos">5117</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="false-5118"><a href="#false-5118"><span class="linenos">5118</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-5209"><a href="#false-5209"><span class="linenos">5209</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">():</span>
+</span><span id="false-5210"><a href="#false-5210"><span class="linenos">5210</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="false-5211"><a href="#false-5211"><span class="linenos">5211</span></a><span class="sd"> Returns a false Boolean expression.</span>
+</span><span id="false-5212"><a href="#false-5212"><span class="linenos">5212</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="false-5213"><a href="#false-5213"><span class="linenos">5213</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>
@@ -45385,11 +46296,11 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#null"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="null-5121"><a href="#null-5121"><span class="linenos">5121</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">():</span>
-</span><span id="null-5122"><a href="#null-5122"><span class="linenos">5122</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="null-5123"><a href="#null-5123"><span class="linenos">5123</span></a><span class="sd"> Returns a Null expression.</span>
-</span><span id="null-5124"><a href="#null-5124"><span class="linenos">5124</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="null-5125"><a href="#null-5125"><span class="linenos">5125</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-5216"><a href="#null-5216"><span class="linenos">5216</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">():</span>
+</span><span id="null-5217"><a href="#null-5217"><span class="linenos">5217</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="null-5218"><a href="#null-5218"><span class="linenos">5218</span></a><span class="sd"> Returns a Null expression.</span>
+</span><span id="null-5219"><a href="#null-5219"><span class="linenos">5219</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="null-5220"><a href="#null-5220"><span class="linenos">5220</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
</span></pre></div>